タグ

ELVMに関するyouzのブックマーク (8)

  • LLVM と ELVM のはなし - LLVM と ELVM のはなし

    1/66 >> First Last LLVM と ELVM のはなし はまじしん一ろう

  • プログラミング言語「PPAP」を作りました - yhara.jp

    I have 80 Pen I have 65 Apple Uh! Put-Pen Uh! Put-Pen Uh! Put-Apple Uh! Put-Pen ソースコード https://github.com/yhara/ppap-lang FizzBuzzも書けます。 宣伝 このような奇妙なプログラミング言語に興味がある人にぴったりな書籍が存在します。 今ならマナティというマイナビのIT電子書籍ストアから購入すると割引になっており、2,041円でPDFが手に入ります。1月10日までです。これに合わせようと思ったのに年始になってしまった。 マナティ年末年始キャンペーン|Tech Book Zone Manatee Rubyで作る奇妙なプログラミング言語|Tech Book Zone Manatee 言語仕様 「I have」はレジスタの宣言です。以下はPenというレジスタを用意し、初期

  • ELVM Compiler Infrastructure について - 兼雑記

    はじめに 言語実装 Advent Calendar 2016 用です。 ELVMは、コンパイラをフロントエンドと中間言語とバックエンドにわけて、多言語多CPUに対応しよう……というようなLLVMの考え方を、パロディと言っていいレベルにまで単純化したものです。結果として実用性は全くないが、C言語から他言語へのトランスレータを極めて簡単に書け、 Brainfuck などのような難しい言語のコードもC言語を書くだけで生成できる、というようなことを主目的としています。 当は ELVM のバックエンドを一つ足して、 Brainfuck とかのような難しいターゲットでなければ、こういう感じで手軽に足せますよーということを書こうかと思っていました。しかし、ありがたいことにそういう趣旨だったり、あるいはもっと難しいターゲットについても、既にあれこれと書いていただいたのでした。例えば Perl: http

    ELVM Compiler Infrastructure について - 兼雑記
    youz
    youz 2016/12/28
  • ELVM を使った multiquine - まめめも

    言語間を自由に行き交うことができる Quine の集合のことを multiquine と言います。例えば mq.rb と mq.py が multiquine であるとは、 ruby mq.rb rb と実行すると mq.rb が出てくる(普通の Quine) python mq.py py と実行すると mq.py が出てくる(普通の Quine) ruby mq.rb py と実行すると mq.py が出てきて、逆に python mq.py rb と実行すると mq.rb が出てくる(相互に出力する) という感じです。5 言語で普通に書かれた multiquine の図がわかりやすいでしょう。ぼくのでもちょっと言及されています。 あなたの知らない超絶技巧プログラミングの世界posted with amazlet at 15.09.01遠藤 侑介 技術評論社 売り上げランキング: 3

    ELVM を使った multiquine - まめめも
  • コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記

    僕は先日、「コンパイル時Cコンパイラ」なるプログラムをつくって、公開した。 「コンパイル時Cコンパイラ」とは、コンパイルするとC言語プログラムのコンパイルが行われるというようなC++プログラムである。 C++のコンパイル中に C言語プログラムのコンパイルを行う、 "コンパイル時Cコンパイラ"をつくりました #ELVMhttps://t.co/kKiLU3rLFX— うどん (@kw_udon_) 2016年11月18日 自分で書いておいてなんだが、「なんのこっちゃ」という感じではある。(ちゃんと記事中で説明する。) 実際、変なプログラムではあるのだが、とても嬉しいことに多くの人に面白がっていただき、予想だにしなかった大きな反響をいただいた。 Hacker Newsで1位になったり、LLVMの公式ブログで紹介されたり、果てはC++の作者であるBjarne Stroustrupにも言及されるに

    コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
    youz
    youz 2016/12/04
  • ELVM で C コンパイラをポーティングしてみよう(Vim script 編) - はやくプログラムになりたい

    この記事は Vim アドベントカレンダー 2016 の2日目の記事です. 先々月に ピュア Vim script な C コンパイラを公開しました. github.com この記事では 8cc.vim で用いた,ELVM を利用して 8cc という C コンパイラを Vim script にポーティング(移植)する方法についてチュートリアル的に解説してみます. まずは登場人物から説明します. 8cc 8cc は C で書かれたコンパイラです.C コンパイラとしては小さく(1万行ぐらい),コードが読みやすいです.小さい割に C11 をサポートしており,セルフホスト(自分自身のコードをコンパイルできる)されています.まさか作者も今回説明するような用途に使われることになるとは思わなかったと思います. ELVM ELVM とは Esoteric Langage Virtual Machine の略

    ELVM で C コンパイラをポーティングしてみよう(Vim script 編) - はやくプログラムになりたい
    youz
    youz 2016/12/02
  • UnlambdaでVMを実装する(前編) - iroriの日記

    Esolang Advent Calendar 2016 2日目の記事です。 ELVMにUnlambdaバックエンドを実装して、C言語のプログラムをUnlambdaに変換できるようにした話です。ちょっと長くなったので2回に分けました。 Unlambdaとは ELVMとは Unlambdaでデータ構造を表現する ペア リスト 数値 例: inc関数 メモリ 前編のまとめ Unlambdaとは UnlambdaはBrainfuckの関数型版とでもいうべき言語で、関数適用演算子`とs, k, iなど少数の組み込み関数だけを使ってプログラムを書きます。 Unlambdaには変数すら無いので直接プログラミングするのは厳しくて、普通はラムダ式を使ってプログラムを書いて、あとからラムダを取り除く(だからUn-lambdaなのですね)変換をかけてやります。とはいえ、組み込み関数とその簡単な組み合わせで何が

    UnlambdaでVMを実装する(前編) - iroriの日記
  • ELVM Compiler Infrastructureバックエンド作成のすゝめ - hak7a3が書き残す何か

    初編 「天はELVM Compiler Infrastructureの上にELVM Compiler Infrastructureを造れり」と言えり。されば天よりCコンパイラを生ずるには、…… というわけで,この記事では,(どこかに作者の資料があるかもしれないが)ELVM Compiler Infrastructureバックエンド作成法を解説する. ELVM Compiler Infrastructureとは ELVM Compiler Infrastructure(以下,記事ではELVMと省略)とは 8ccというCコンパイラを改造したフロントエンド フロントエンドで生成された中間言語(EIR)を別の(主に難解)プログラミング言語に変換するバックエンド から構成されるCコンパイラ*1である.作者は@shinh氏.ELVMの詳細はここあたりを参照するとよいだろう.要は,Cプログラムを様々な

    ELVM Compiler Infrastructureバックエンド作成のすゝめ - hak7a3が書き残す何か
    youz
    youz 2016/11/15
    > 時代がTeXでCコンパイラを求めていることは自明であった.
  • 1