2014-01-01から1年間の記事一覧

CRC32 Quine を Z3 で解く

ref: http://shinh.hatenablog.com/entry/2014/12/25/013926おー。Z3 で再現してみた。 $ time python crc32.py 86319a79 58a8a1b9 real 151m1.375s user 151m7.607s sys 0m0.179s1 つめは 3 分くらいで見つかるけど、2 つめは 2 時間くらい、チェック完了ま…

Quine-relay Advent calendar 反省会

企画について 当初は「1 日 1 言語を紹介しながら追加していく」という企画を目論んでいました。しかし Quine リレーに追加する過程では、Hello, world 程度の知識(+重箱の隅をつつくような知識)しか身につかないので、紹介できるほどのネタはなく、淡々…

100 言語版 Quine リレー

(この記事は Quine Advent calendar 2014 の 25 日目です)以下は、自分自身を出力する REXX プログラムを出力する Ratfor プログラムを出力する R プログラムを出力する (...略...) を出力する Scala プログラムを出力する Ruby プログラムです。合計 100 …

Quine-relay Advent calendar Day 24: Lazy K

ref: https://github.com/mame/quine-relay24 日目の今日は、Lazy K を追加しました (コミット) 。100 言語達成! ロゴも新しくなりました。(@hirekoke さんありがとう)Lazy K は、純粋関数型の難解プログラミング言語です。SKI コンビネータを直接書く系…

Quine-relay Advent calendar Day 23: Lisaac

ref: https://github.com/mame/quine-relay23 日目の今日は、Lisaac を追加しました (99 言語目、コミット) 。正直まったく知らない言語です。Wikipedia によると、静的型付きプロトタイプベース言語で、Self や Eiffel の影響を受けているそうです。Isaac …

Quine-relay Advent calendar Day 22: Kaya

ref: https://github.com/mame/quine-relay22 日目の今日は、Kaya を追加しました (98 言語目、コミット) 。Kaya は、型推論付きの C 系っぽい言語らしいです。型推論といっても特に堅苦しい感じはせず、普通にCっぽい印象です。結構実用性高そうな感じ。イ…

Quine-relay Advent calendar Day 21: Julia

(これは Quine-relay Advent calendar 21 日目の記事、兼、Julia Advent Calendar 2014 の 21 日目の記事です)21 日目の今日は、Julia を追加しました (97 言語目、コミット) 。Julia はわりと若い言語ですが、最近よく名前を聞きます。Quine リレーでは、…

Quine-relay Advent calendar Day 20: haXe

ref: https://github.com/mame/quine-relay20 日目の今日は、haXe を追加しました (96 言語目、コミット) 。haXe は、Javascript と Java の融合したような見た目の言語です。Javascript にコンパイルしたり、Flash にコンパイルしたり、NekoVM 用のバイトコ…

Quine-relay Advent calendar Day 19: Gri

ref: https://github.com/mame/quine-relay19 日目の今日は、Gri を追加しました (95 言語目、コミット) 。Gri は科学的なグラフィックプログラミング言語だそうです。グラフとか描画できる系。この言語において、文字列の扱いはほとんどおまけです。エスケ…

Quine-relay Advent calendar Day 18: G-Portugol

ref: https://github.com/mame/quine-relay18 日目の今日は、G-Portugol を追加しました (94 言語目、コミット) 。G-Portugol は、ブラジルポルトガル語によるプログラミング言語です。別に難解プログラミング言語というわけではありません。C の関数名や識…

Quine-relay Advent calendar Day 17: Gnuplot

ref: https://github.com/mame/quine-relay17 日目の今日は、Gnuplot を追加しました (93 言語目、コミット) 。Gnuplot は、みんなご存じグラフ描画ツールですが、プログラミングもそれなりにできるらしいです。set print "-" とすれば標準出力に print でき…

Quine-relay Advent calendar Day 16: GEL (Genius)

ref: https://github.com/mame/quine-relay16 日目の今日は、GEL を追加しました (92 言語目、コミット) 。Genius は MATLAB や Maple と似ているという汎用計算プログラムで、GEL はその記述言語です。数式っぽいのがそのまま書ける系。こういうのって多い…

Quine-relay Advent calendar Day 15: GAP

ref: https://github.com/mame/quine-relay15 日目の今日は、GAP を追加しました (91 言語目、コミット) 。GAP は "Groups, Algorithms, Programming" の略で、離散代数のためのシステムだそうです。数学系。GAP の Print は行幅を勝手に区切る系だったので …

Quine-relay Advent calendar Day 14: Gambas script

ref: https://github.com/mame/quine-relay14 日目の今日は、Gambas script を追加しました (90 言語目、コミット) 。Gambas は、主にスペインで開発されているらしい BASIC 環境です。Gambas はスペイン語でエビだそうです。Quine リレーでは print するだ…

Quine-relay Advent calendar Day 13: FALSE

ref: https://github.com/mame/quine-relay13 日目の今日は、FALSE を追加しました (89 言語目、コミット) 。FALSE はスタック指向の難解プログラミング言語です。難解プログラミング言語としては結構古めの 1993 年に作られています。FALSE の元ネタは Fort…

Quine-relay Advent calendar Day 12: Falcon

ref: https://github.com/mame/quine-relay12 日目の今日は、Falcon を追加しました (88 言語目、コミット) 。Falcon は、手続き的でプロトタイプベースのオブジェクト指向言語らしいです。それ以上のことはまったく知りません。Quine リレーでは > するだけ…

Quine-relay Advent calendar Day 11: F#

ref: https://github.com/mame/quine-relay11 日目の今日は、F# を追加しました (87 言語目、コミット) 。F# は、Microsoft 社製の .NET 向け OCaml です。(と言っていいのかな)Quine リレーでは printfn するだけ。

Quine-relay Advent calendar Day 10: Erlang

ref: https://github.com/mame/quine-relay10 日目の今日は、Erlang を追加しました (86 言語目、コミット) 。Erlang は、エリクソンが作ったとかいう、並列指向のプログラミング言語です。Prolog を彷彿とさせる変態言語の一種だと思うんですが、なぜか世間…

Quine-relay Advent calendar Day 9: Emacs Lisp

ref: https://github.com/mame/quine-relay9 日目の今日は、Emacs Lisp を追加しました (85 言語目、コミット) 。Emacs Lisp というのは、Emacs とかいうマイナーなテキストエディタで使われている Lisp 方言らしいです。なおぼくは vim 派です。Quine リレ…

Quine-relay Advent calendar Day 8: eC

ref: https://github.com/mame/quine-relay8 日目の今日は、eC を追加しました (84 言語目、コミット) 。eC は、C 風のオブジェクト指向プログラミングです。Ecere SDK とかいうゲーム用の SDK に組み込まれている言語のようです。Quine リレーでは、文字列…

Quine-relay Advent calendar Day 7: dc

ref: https://github.com/mame/quine-relay7 日目の今日は、dc を追加しました (83 言語目、コミット) 。dc は逆ポーランド記法の電卓ですが、スタックマシン的なスクリプト言語機能も備えています。dc をもっと人間にやさしくしたのが bc という関係らしい…

Quine-relay Advent calendar Day 6: D

ref: https://github.com/mame/quine-relay6 日目の今日は、D 言語を追加しました (82 言語目、コミット) 。これも 50 言語版の Quine リレーに組み込み忘れて後悔していた言語の 1 つです。Quine リレーでは write するだけ。

Quine-relay Advent calendar Day 5: Chef

ref: https://github.com/mame/quine-relay5 日目の今日は、Chef を追加しました (81 言語目、コミット) 。Chef は、レシピ風の記述で計算を表現する難解プログラミング言語です。Chef は手を抜こうと思えば手を抜ける言語ですが (料理名や材料名を a とか b…

Quine-relay Advent calendar Day 4: CDuce

ref: https://github.com/mame/quine-relay4 日目の今日は、CDuce を追加しました (80 言語目、コミット) 。CDuce は XML の扱いに最適化されたプログラミング言語ということになってます。が、触ってみた実感としてはわりと普通の ML でした。とりあえずの…

Quine-relay Advent calendar Day 3: BLC8

ref: https://github.com/mame/quine-relay3 日目の今日は、BLC8 を追加しました (79 言語目、コミット) 。BLC8 は Binary lambda calculus の一種で、Binary lambda calculus は、ラムダ計算の構文をそのままビット列にした言語です。IOCCC 2012 でも素敵な…

Quine-relay Advent calendar Day 2: bc

ref: https://github.com/mame/quine-relay2 日目の今日は、bc を追加しました (78 言語目、コミット) 。bc は、電卓として使っている人がほとんどではないかと思うのですが、意外にちゃんとしたプログラミング言語らしいです。関数とか定義できます。Quine …

Quine-relay Advent calendar Day 1: Befunge

Quine リレーアドベントカレンダーは、毎日プログラミング言語を 1 つ紹介し、それを Quine リレーに追加していき、最終的に「100 言語の共演」を目指すという、プログラミング言語マニア必見 (?) のアドベントカレンダーです。 ref: https://github.com/mam…

Quine-relay Advent calendar Day 0: ATS

ref: https://github.com/mame/quine-relay今日は、ATS を追加しました (76 言語目、コミット) 。ATS は、Automatic Train Stop の略ではなく、なんか強力な型システムを備えたプログラミング言語です。内容は知りませんが、定理証明界隈で名前を聞く気がし…

Quine-relay Advent calendar Day -1: Asymptote

ref: https://github.com/mame/quine-relayマイナス 1 日目の今日は、Asymptote を追加しました (75 言語目、コミット) 。Asymptote は技術的なグラフィック描画のためのスクリプト言語だそうです。MetaPost の発展形 (?) ということで、TeX 界隈で知られる…

Quine-relay Advent calendar Day -2: Ante

ref: https://github.com/mame/quine-relayマイナス 2 日目の今日は、Ante を追加しました (74 言語目、コミット) 。Ante はトランプの札でプログラムを表現する難解プログラミング言語です。4 種のマークが演算子とレジスタのダブルミーニングになっていて…