タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

implementationとfunctionalとprogrammingに関するjjzakのブックマーク (7)

  • コンビネータでVM実装:old

    編集中。 尚、内容の正しさは全く保証できません。 「○○は△△です」と言い切りの形で書いてあっても、鵜呑みにしない方が安全です。 概要目的ルール予習復習基礎コンビネータの準備ユーティリティマクロの用意他のコンビネータ条件分岐自然数その一(失敗)演算その一(失敗)自然数その二(チャーチ数)演算その二ToDo参考リンク 概要 http://hw001.gate01.com/eggplant/tcf/unlambda/ 「全てのオブジェクトは関数である」という理念の極北とも言うべきunlambda。 そのunlambdaの基となるS, Kコンビネータだけを用いて、論理的に正しく動作するVMを実装します。 尚、速度や実行コスト等は度外視します。 unlambdaには「難読化」というポリシーも含まれている為、VMの実装にはunlambdaそのものではなく、S式を利用します。具体的にはscheme。

  • Small-Lisp 実装を通して

    感想文です。 まあ、前言った通り、 「Lispの実装をLispで行う?ネタ?それってオモロイのか?」 とか懐疑的だったんですけど。実際やってみると面白い(笑)。ハマりました(笑)。色んな意味ですけどね。 まあ、別に自分で0から考えて、ってわけじゃなくって、森北から出ているSchemeによる記号処理入門を見ながらやってたわけですけど。それで自分が気に入らないコーディングスタイルとか、あるいはこうだったら良いなあ、ってのを考えながら弄ってたわけですけれども。 でもマジに意外と面白かったです。ちょっとはSICPの第4章辺り読む自信付いたかな? 個人的には「こりゃ大変だ」とか思ったのがラムダ式(Small-Lispではfnと言う名前になってる)と=(Common Lispで言うsetf)の実装ですかね。あ、ifも大変だったな。中でもやっぱ一番大変だったのは=の実装ですかね。CLのsetfみたいな動

  • Lambda Gate -- various LISPs

    λ門 Updated $Date: 2008/01/19 08:38:39 $ 様々な LISP LISPs in research TUPLE (Toyohashi University Parallel Lisp Environment) は、 Common Lisp に超並列計算機の機能を付加したもの とのことです。 NUE (New Unified Environment) の TAO は、LISP 専用機 ELIS の核言語です。 Thomas Mahler 氏の pLISPは an experimental Implementation of parallel functional Programming. It is based on massive parallel graph-reduction machine だとのことです。 Gregory J. Chaitin 氏は

  • cranebirdの日記

    data Reg = Zero | At | V0 | V1 | A0 | A1 | A2 | A3 | T0 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | S0 | S1 | S2 | S3 | S4 | S5 | S6 | S7 | T8 | T9 | GP | SP | FP | RQ | PC deriving (Eq, Ord, Show, Enum, Bounded) data Insn = Add Reg Reg Reg | Sub Reg Reg Reg | J Word deriving (Eq, Ord, Show) data PseudoInsn = Pseudo [Insn] data Cell = W Word | I Insn deriving (Eq, Ord, Show) data VM = VM (Map.Map Reg Cel

    cranebirdの日記
  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) 前回に引き続き、Scheme言語の処理系、Gaucheを開発している川合史朗氏が、クロージャの機能を検証し、関数型言語とオブジェクト指向言語の関係について解説していきます。今回は、クロージャとオブジェクトのより深淵を探求します。 抽象化ツールとしてのクロージャ C++的なオブジェクトの世界では、オブジェクトの実体とは「ひとかたまりの構造体としてメモリ上に置かれたインスタンス変数の値」にすぎません。オブジェクトのポインタを取れば、それは事実上、その構造体へのポインタを持っていることになります。クロージャを「関数」中心で見ていると、その実体は「オブジェクト」の実体とは異質なもののように思えるでしょう。 確かにクロージャのナイーブな「実装」は、関数ポインタと環

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)
  • letter

    CPU      : AMD Ryzen 9 5950X Vermeer[3.4GHz/16Core/TDP105W] 搭載モデル CPUグリス: Arctic Silver AS-05A [高密度微粒子、高熱伝導率タイプ] 水冷UNIT : Fractal Design FD-WCU-CELSIUS-S36-BK [水冷ユニット] MOTHER   : ASRock X570 Taichi [AMD X570chipset] MEMORY   : 64GB[16GB*4枚] G.SKILL Trident Z RGB DDR4-3200 RGB内蔵ヒートスプレッダー搭載 Dual Channel HDD/SSD  : Western Digital WD Black SN850 WDS200T1X0E [M.2 PCI-E GEN4 SSD 2TB]★PCI-E4.0対応 超高速次世代S

  • SISC

    SISC is an extensible Java based interpreter of the algorithmic language Scheme. SISC uses modern interpretation techniques, and handily outperforms all existing Java interpreters (often by more than an order of magnitude).

  • 1