タグ

プログラムと言語に関するiwwのブックマーク (11)

  • バイナリエディタ比較 - satosystemsの日記

    バイナリエディタを検討したので、メモを残しておきます。 世の中には実に多くのバイナリエディタが存在しますが、今回検討したのは、Windows で動作する構造体編集機能を持つものです。目的としては、動的構造体定義が行えるかどうかという検証で、今回取り上げたすべてのバイナリエディタで静的構造体編集機能は備わっています。 動的構造体といのはどういうものかというと、以下のようなものです。 struct Data { int length; char bytes[length]; }; こういう構造は実際のところ割と多用されていて、それをバイナリエディタで気軽に確認・編集したいというのが動機です。 xedit 上図は xedit でビットマップの構造体を表示させてみたものです。 Lua でスクリプトが書けるので期待したのですが、動的構造体の定義は行えませんでした。 TSXBIN 上図は TSXBIN

    バイナリエディタ比較 - satosystemsの日記
    iww
    iww 2022/09/27
    動的構造体って初めて見た。 なんかおっかねーな
  • P++: 静的型付けをめざすPHP

    PHP: pplusplus:faq PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる。P++はPHPとの下位互換性を削りながら除々にPHPを静的型付け言語にする試みだ。 PHP開発者の中には2つの流派がある。PHPの源流であり現在の形である動的型付け言語としてのPHPを良しとする流派と、PHPをより強い静的型付け言語へと発展させたい流派だ。良い悪いの問題ではない。どちらの流派も正当な理由がある。しかし、ゆるふわな動的型付け言語とガチガチの静的片付け言語は同じ一つの言語として同居できない。 そこで、コードネームP++として、PHPを静的型付け言語に発展させる新しい言語の開発が提案された。P++はforkではなく、PHPと同じコードベースを共有する。PHP 8のバイナリはPHPとP++を同時に実装する。言語の切り替えは何らかの宣言によって指定する。 P++は

    iww
    iww 2019/08/13
    別言語なのか。 use strict; みたいなおまじないで固くなるようにしてくれれば十分なのにな・・・
  • 静的コード解析 - Wikipedia

    静的コード解析 (せいてきコードかいせき、static code analysis) または静的プログラム解析 (static program analysis) とは、コンピュータのソフトウェアの解析手法の一種であり、実行ファイルを実行することなく解析を行うこと。逆にソフトウェアを実行して行う解析を動的プログラム解析と呼ぶ[1]。静的コード解析はソースコードに対して行われることが多いが、少数ながらオブジェクトコードに対して行う場合もある。また、この用語は以下に列挙するツールを使用した解析を意味することが多い。人間が行う作業はインスペクション、コードレビューなどと呼ぶ。日語では静的コード分析とも訳される[2]。 概要[編集] ツールが行う静的コード解析の洗練度は、個々の文や宣言だけを検証するものから、プログラム全体を解析するものまで様々である。解析結果の利用も様々で、Lintのように単に

  • C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合

    Krister Walfridsson’s blog: Why undefined behavior may call a never-called function 以下のようなコードをClangでコンパイルすると、 #include <cstdlib> typedef int (*Function)(); static Function Do; static int EraseAll() { return system("rm -rf /"); } void NeverCalled() { Do = EraseAll; } int main() { return Do(); } Clangは以下のような最適化されたコードを吐く。 main: movl $.L.str, %edi jmp system .L.str: .asciz "rm -rf /" これは以下のようなコードと同じだ。

    iww
    iww 2017/09/26
    CやC++は未定義や不定が多いので、きちんと定義してほしい。
  • 自分でプログラム言語を書いてみたい人は「Create Your Own Programming Language」がおすすめ - ブログのおんがえし

    読み終わった。たった100Pにプログラム言語を作るための基礎(字句解析、構文解析、ランタイム、インタプリタ、仮想マシン、ネイティブコンパイルまで!)が一通り学べ、さらに書で作った実際に動くプログラミング言語がついてくる。 $39.99 とちょっと高いがプログラム言語を作る勉強代だと考えれば最も安くそして早く(ドラゴンブックは1090P)学べるのではないだろうか。洋書なのが難点だが半分くらいはソースコードなので苦労しながらなんとかなりました。(日語訳出てほしいなぁ) 書籍内で作る言語は2種類で Awesome Rubyの構文にPythonのインデントブロックを混ぜ合わせたようなオブジェクト型 Mio Ioを参考にしたメッセージ型 言語自体はどちらもRubyで書かれているが紹介される概念は特に言語の制約を受けないものが多い。 よかったところ yaccやbison, JVM系の構文解析ツール

    自分でプログラム言語を書いてみたい人は「Create Your Own Programming Language」がおすすめ - ブログのおんがえし
  • CodeIQについてのお知らせ

    2018年4月25日をもちまして、 『CodeIQ』のプログラミング腕試しサービス、年収確約スカウトサービスは、 ITエンジニアのための年収確約スカウトサービス『moffers by CodeIQ』https://moffers.jp/ へ一化いたしました。 これまで多くのITエンジニアの方に『CodeIQ』をご利用いただきまして、 改めて心より深く御礼申し上げます。 また、エンジニアのためのWebマガジン「CodeIQ MAGAZINE」は、 リクナビNEXTジャーナル( https://next.rikunabi.com/journal/ )に一部の記事の移行を予定しております。 今後は『moffers by CodeIQ』にて、 ITエンジニアの皆様のより良い転職をサポートするために、より一層努めてまいりますので、 引き続きご愛顧のほど何卒よろしくお願い申し上げます。 また、Cod

    CodeIQについてのお知らせ
  • Sandstorm:ウィザードリィの呪文名に関しての誤解と由来についての真説 - livedoor Blog(ブログ)

    twitterで、こんな発言が流れてきた。 「Wizの呪文は、新言語だった。 例えばMAHALITOならば ・MA(範囲は1グループ) ・HA(火属性) ・LITO(敵モンスターのHP3〜24減らす) という解釈をコンピュータに読ませている。 まさに文字通りの『呪文』である」 気になってネタ元を探してみると、どうも「RPG大辞典倉庫Lv5」の、 「トゥルー・ワード」の項からの引用らしい。 結論から言ってしまうと。 この記述、100%誤りです! 仮にこういう仕様を採用していたとしたら、 Lv1の魔術師呪文であるHALITOは「火属性の3〜24ダメージ」になってしまうし (実際は1〜8ポイントしかダメージがないのは、遊んだことがあればご存じでしょう)、 MAHAMANはHAMANの1グループ対象呪文になってしまうし(実際は効果が増えている)、 DALTOとLAHALITOとはともに6〜36ダメ

  • Pro*Cによるプログラム

    Pro*Cとは Oracleでは、C言語を使ってデータベースをアクセスするために、Pro*Cという、C言語のプリコンパイラを提供しています。 Pro*Cのソースファイル(*.pc)をprocコマンドで、プリコンパイルすると、Cのソース(*.c)が生成されます。 プログラムは、C言語のソースの中に、EXEC SQLなどのようにソースを埋め込んで記述します。 以下に、Pro*Cを使った、簡単なサンプルプログラムを紹介します。 Pro*Cによる配列アクセスのサンプルプログラム 配列アクセスは、SQLの規格にはありませんが、大幅にデータベースの性能改善ができます。 以下のプログラムは、配列アクセスにより、データベースを全件検索するPro*Cのサンプルです。 パラメータを付けると、デバッグ用のトレースを表示します。 #include <stdio.h> EXEC SQL BEGIN DECLARE

    iww
    iww 2014/09/24
    拡張子 .pc の謎プログラムの正体
  • 第9章 速習yacc

    概要 パーサとスキャナ プログラム言語のパーサの書きかたは昔からしつこく研究されてきており、 かなりしっかりした定石がある。よほど変な(または曖昧な)文法でない 限り、定石にのっていけば解決できるものだ。 まず最底辺には文字列を単語(トークンとも言う)の列に切り出す部 分がある。これをスキャナ(scanner)とかレクサ(lexer)と言 う。日語で言うと字句解析器だが、言いにくいのでスキャナと呼ぼう。 スキャナというものが出てくる根底にはそもそも「単語の区切りには空白ある でしょ」という常識がある。そして実際にたいていのプログラミング 言語はそういう仕様になっている。そのほうが楽だからだ。 例えば古いFortranでは空白が意味を持たなかった。つまり空白を入れても 単語区切りとは限らないし、変数の途中で何の前触れもなく空白を挿入したり することもできた。ところが解析が恐ろしく面倒なもの

  • smileboom.com - プチコンとは?

    メーカー 株式会社スマイルブーム 配信日 2011年3月9日~2012年3月14日 価格 800DSiポイント ジャンル 教育/データベース 対応機種 ニンテンドーDSi / DSi LL / 3DS(*) (*ニンテンドーeショップからご利用になれます) 利用規約 現在は上位互換ソフトの『プチコンmkII』が配信されています。 このページで紹介されている『プチコン』は2012年3月14日配信停止となりました。 プチコンとは? サンプルギャラリー 説明書/ダウンロード プログラムリスト集 おしらせ バグ情報 初心者むけ講座

    iww
    iww 2011/05/12
    PLAY文の説明がぶっちゃけすぎてる
  • #gamagとSmall Basic::Colorful Pieces of Game

    Twitter上で、たまたま参加してしまったので宣伝。 #gamag というハッシュタグで行われている活動で、昔のマイコンベーシックマガジンみたいなプログラム初心者向けの雑誌(pdf)を作ろう、という活動をしている人達がいる。 サイトは ■ ゲーム制作雑誌 執筆者+読者サイト ■ 現在の誌面 作っている人達は、ほぼTwitterで集まっている。 たまたま、投稿用のゲームを書いてくれないか…という話になり、他の人達が、XNAとかJavaとかけっこー高級な言語で作っている中、自分の知る限りで、およそどんな言語よりWindows上で(簡単な)プログラムを書く上では最強に楽なSmall Basicを使って、手抜きなゲームを一個投稿させてもらった。 ちなみにSmall Basicは楽しくもひどい言語だ。以下、Small Basicの驚くべき能力の列挙w ・大域変数しかない ・配列宣言ない ・変数に型

    iww
    iww 2010/12/12
    『Windowsでグラフィックとマウスを扱う上では、これより簡単な言語はない、と断言できるほど簡単なうえに、恐ろしく楽しい。』
  • 1