コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2013年6月13日 >>> 2013年6月4日
link もっと後

2013年6月13日

世の中にありそうでない言語

最近、自習を兼ねて、バイナリ解析するアプリを書いていますが、言語が備えていると(私が)嬉しい3つの条件があります。

個別にみると珍しくない条件で、3つの条件を満たす言語もこの世に既にありそうですが、今のところ「コレだ!」というものが見つからず、気分がモヤモヤしています。

3つの条件

  • 整数型が存在すること。unsigned型が存在すると嬉しい。
  • ガベージコレクションが存在すること。
  • 最低限LinuxとWindowsで動かせること。各種コンテナや、GUIライブラリが揃っているとなお嬉しい。

今までの選択

初めはCで書いていましたが、条件2と条件3がない辛さに耐えられなくなりました。リストや連想配列の再発明は、それはそれで楽しいけれど、やりたいこととは関係ないんです。

次はC++ with Boehm GCで書きましたが、条件3に躓いたときGTKにぶち当たって挫けました。決して悪いライブラリではないのですが…。

今はJavaで書いていて概ね良好ですが、条件1のunsigned型がないため細々した部分で面倒くさいです。

これからの選択

一番条件が合うのはVisual C# .NETでしょうか。条件3のLinuxサポートが微妙か?Monoの気分次第ですね。変わり種としてD言語も条件合いそうですが、使う気があまり起きません…なぜでしょう。

スクリプト言語の手軽さには心惹かれていて、ぜひ使いたいところですが、RubyやPythonはやはり条件1が満たせません。Javaと同様でunsignedがないのです。

ブラウザベースのJavaScriptや、ゲーム界で大人気のLuaも心惹かれていますが、どうも整数値という概念がなく、全て浮動小数点として扱われるようで、演算、特に除算とビットフィールドの扱いが面倒くさそうです。

時代の流れ的に整数型ってなくなる方向みたいですし、今後に期待しても望みは薄いかもしれません。うむむ…困ったね。

編集者:すずき(2013/06/16 01:46)

コメント一覧

  • IKeJIさん(2013/06/16 07:19)
    CからJavaへ移植するために元がunsignedで困る事は良くありますね。

    バイナリ解析用途だと時前でbyte[]を使って実装するのはどうでしょうか?
  • すずきさん(2013/06/16 09:01)
    >IKeJIさん
    そうですよね、どちらかというとunsignedは使われると他言語移植の時に困る代物になっていますね。
    byte[]のまま処理するというのはおもいつかなかったです。今はbyte[]で読んできて全部64bit整数に変換して凌いでます。
  • よしだあさん(2013/06/18 02:04)
    Ruby使いですがバイナリも意外といけるよ。いっしょにRubyやろうぜ!笑

    http://ref.xaio.jp/ruby/classes/string/unpack
  • すずきさん(2013/06/19 00:28)
    >よしだあさん
    Rubyはバイナリの扱いもさることながら、整数の桁数が実質無制限なので、負数の扱いについて、CやJavaと違う処理が必要になりそうです。
    文句言う前に考えろって話ですけど、それなりに面倒くさいんです…。
  • よしだぁさん(2013/06/20 12:49)
    binstr = "\001\002\003\004\377\376\375\374"
    # unsigned
    binstr.unpack("I*") => [67305985, 4244504319]
    # signed
    binstr.unpack("i*") => [67305985, -50462977]

    取得にかんしては、こんな組込み関数があるけどね。内部表現としても 32bit とか 64bit とか、ということになると Ruby は不向きかもなぁ。

    http://moko.cry.jp:3232/~keiji/ruby-manual-1.8-20050214/pack_A5_C6_A5_F3_A5_D7_A5_EC_A1_BC_A5_C8_CA_B8_BB_FA_CE_F3.html
  • すずきさん(2013/06/21 13:16)
    >よしだあさん
    なんと、こんなことできるんですか。さすがRuby…できる子。
open/close この記事にコメントする



2013年6月8日

エンジニア川柳

部下のやる気を「完全に抹殺」する管理職様の心得を川柳にしてみた。

優先度放棄
お客様の 要望全部 最優先
無理な期日
早くやれ どうしてできない 言ってみろ!
恐怖政治
まず怒鳴り 机を叩いて 物を投げ
丸投げ
やっといて あとはよろしく ねえ?できた?
無計画
明日を見ろ 一年後なんか 知らねえよ

メモ: 技術系?の話(なのかな…これ)はFacebookから転記しておくことにした。

編集者:すずき(2014/03/16 23:55)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2013年6月13日 >>> 2013年6月4日
link もっと後

管理用メニュー

link 記事を新規作成

<2013>
<<<06>>>
------1
2345678
9101112131415
16171819202122
23242526272829
30------

最近のコメント5件

  • link 24年4月22日
    hdkさん (04/24 08:36)
    「うちのHHFZ4310は15年突破しまし...」
  • link 24年4月22日
    すずきさん (04/24 00:37)
    「ちゃんと数えてないですけど蛍光管が10年...」
  • link 24年4月22日
    hdkさん (04/23 20:52)
    「おお... うちのHHFZ4310より後...」
  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」

最近の記事20件

  • link 24年2月7日
    すずき (04/24 02:52)
    「[複数の音声ファイルのラウドネスを統一したい] PCやデジタル音楽プレーヤーで音楽を聞いていると、曲によって音量の大小が激しく...」
  • link 24年4月22日
    すずき (04/23 20:13)
    「[仕事部屋の照明が壊れた] いきなり仕事部屋のシーリングライトが消えました。蛍光管の寿命にしては去年(2022年10月19日の...」
  • link 24年4月17日
    すずき (04/18 22:44)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
  • link 23年4月10日
    すずき (04/18 22:30)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 20年2月22日
    すずき (04/17 02:22)
    「[Zephyr - まとめリンク] 目次: Zephyr導入、ブート周りHello! Zephyr OS!!Hello! Ze...」
  • link 24年4月16日
    すずき (04/17 02:05)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その2 - インストール時のバイナリ書き換え] 目次: Zep...」
  • link 24年4月15日
    すずき (04/17 01:47)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その1 - 移動させると動かなくなる] 目次: ZephyrZ...」
  • link 24年4月11日
    すずき (04/17 00:37)
    「[VScodeとAsciiDocとKrokiローカルサーバー] 目次: LinuxAsciiDoc ExtensionはAsc...」
  • link 24年4月12日
    すずき (04/16 00:12)
    「[台湾東部沖地震に寄付] ささやかではありますが台湾東部沖地震に寄付しました。日本の赤十字社→台湾の赤十字(正式名称...」
  • link 22年9月3日
    すずき (04/16 00:08)
    「[MarkDownのその向こう] 目次: Linux簡単なドキュメントやメモはMarkDownで書くことが多いですが、気合を入...」
  • link 22年9月4日
    すずき (04/16 00:08)
    「[Asciidocをさらに活用] 目次: Linux前回(2022年9月3日の日記参照)、Asciidocのプレビュー環境の設...」
  • link 24年3月19日
    すずき (04/16 00:07)
    「[モジュラージャックの規格] 目次: Arduino古くは電話線で、今だとEthernetで良く見かけるモジュラージャックとい...」
  • link 23年6月2日
    すずき (04/16 00:07)
    「[Arduino - まとめリンク] 目次: Arduino一覧が欲しくなったので作りました。 M5Stackとesp32とA...」
  • link 24年4月9日
    すずき (04/12 12:44)
    「[初めて作ったボード動作せず(手で直した)] 目次: Arduino以前(2024年3月24日の日記参照)発注して、全く動ない...」
  • link 24年4月2日
    すずき (04/12 11:00)
    「[KiCadが動かなくなったのでビルド] 目次: ArduinoDebian Testingなマシンをapt-get upgr...」
  • link 24年4月3日
    すずき (04/12 11:00)
    「[初めて作ったボード動作せず(燃えた)] 目次: Arduino以前(2024年3月24日の日記参照)発注したPCBが届いたの...」
  • link 24年3月24日
    すずき (04/12 11:00)
    「[PCBを設計して注文] 目次: Arduinoシューティングの練習でいつもお世話になっているTARGET-1秋葉原店に、6つ...」
  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月18日
    すずき (03/19 11:47)
    「[画面のブランクを無効にする] 目次: LinuxROCK 3 model CのDebian bullseyeイメージは10分...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/24 08:36