タグ

ブックマーク / qiita.com/KDKTN (3)

  • 100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita

    プログラミングをしたことがあるひとなら、誰でも1度くらい自分の理想の言語を作ってみたいと思うのではないでしょうか。このテキストは、オリジナルのプログラミング言語のコンパイラ作成を通して、パーサコンビネータの使い方を紹介していくものです。 2分でわかる、俺の俺による俺のためのプログラミング言語を作る大まかな手順 自分のオリジナルなプログラミング言語を作るには、典型的には次のような手順を踏みます。 既存のプログラミング言語を使ってみる その既存の言語の気に入らないところを徹底的になじる(ただし心のなかで) 己の内に秘める中二力を卍解し、最強プログラミング言語の仕様を妄想する コンパイラを作る その言語を教典とする宗教団体を設立し、慈悲深き終身の独裁者を名乗る 自分の言語が思ったよりしょぼいことに気付く 桶屋が儲かる このテキストではこのうち手順 4 だけ、特にコンパイラのパーサ部分を解説します

    100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita
  • コールバック……駆逐してやる…この世から…一匹…残らず!! - Qiita

    このテキストは JavaScript のコールバック地獄に疲れたひとのためのコールバック駆逐術指南書です。対象読者は JavaScript道初段くらいの人です。このテキストを読むと、以下のそれぞれの手段における非同期処理制御の仕組み、利点および欠点がわかるようになるかもしれません。 コールバック地獄 jQuery.Deferred async.js Concurrent.Thread generators co fibers Web Workers (※なぜか『進撃の巨人』の一部ネタバレが含まれるので注意してください) それは『何故人はコールバックするのか』という話でしょうか? 非同期処理って面倒ですよね。JavaScriptではいわゆる コールバック地獄 というやつにしばしば陥りがちです。たとえば、Ajax でふたつのファイル hoge.txt と piyo.txt を持ってきて、それら

    コールバック……駆逐してやる…この世から…一匹…残らず!! - Qiita
  • 食べられないほうのカリー化入門 - Qiita

    『カリー化』(Currying) という概念をご存知でしょうか。"Curry" はべ物のカレー(Curry)と同じスペルですが、ここでいう Curry はそれとは別のもので、多くのプログラミング言語に応用できるかもしれない、とても便利かもしれない概念です。 では教えてくれ。”カリー化”とはなんのことだ? 『ふたつの引数のうち、大きい方の数を返す』という機能を持った関数 max を実装したいとしましょう。そのようなとき、大抵は次のように定義すると思います。 この関数 _max も『大きい方の数を返す』という機能を持っていますが、_max は max とは呼び出し方が少し異なります。たとえば、_max で 1 と 2 のうち大きい方を求めるには、 _max(1)(2) のように書きます。 _max が通常の max と異なるところは、関数を呼び出すときに引数をひとつづつ渡すようになっていると

    食べられないほうのカリー化入門 - Qiita
  • 1