タグ

implementationとlispに関するjjzakのブックマーク (25)

  • ((Pythonで) 書く (Lisp) インタプリタ)

    Peter Norvig / 青木靖 訳 このページには2つの目的がある。コンピュータ言語の実装について一般的な記述をすることと、Lispの方言であるSchemeのサブセットをPythonで実装する具体的な方法を示すことである。私はこのインタプリタをLispy (lis.py)と呼ぶ。何年か前に私はJavaとCommon LispでSchemeインタプリタを書く方法を示した。今回の目標は、アラン・ケイが「ソフトウェアのマクスウェル方程式」と呼んだところの簡潔さと取っつきやすさを可能な限り実現するということだ。 SchemeのサブセットLispy の構文と意味論 コンピュータ言語の多くは様々な構文的な決まり(キーワード、中置演算子、カッコ、演算子優先順、ドット記法、セミコロンなど)を持っているが、Lisp族言語の1つとして、Schemeの構文はすべてカッコ付きの前置記法であるリストを基とし

  • ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ)

    ((Pythonで) 書く ((さらに良い) Lisp) インタプリタ) Peter Norvig / 青木靖 訳 前のエッセイでは、90行のPythonコードでシンプルなLispインタプリタを書く方法を示した(lis.py)。このエッセイでは、3倍込み入っているが、より完全なlispy.pyを実装しよう。それぞれの節で1つの機能追加を扱っている。 (1) 新しいデータ型 - 文字列、論理型、複素数、ポート Lispyへの新しいデータ型の追加は3つの部分からなる。データの内部表現、それを扱う手続き、読み書きのためのシンタックスだ。ここでは4つの型を追加する(入力ポート以外はPythonのネイティブ表現をそのまま使う)。 文字列 文字列リテラルはダブルクォーテーションで囲まれる。文字列の中で \n は改行を、\" はダブルクォーテーションを意味する。論理型  構文 #t と #f はTrue

  • JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you

    MiSPLi: http://mooz.github.com/mispli/ MiSPLi Emacs に出会ったのが三年前. それから一年程して elisp をいじり始めたので, 僕と Lisp との付き合いはかれこれ二年ほどになる. JavaScript を始めたのが一年前だから, 僕の中では C 言語に次いで付き合いの長い言語だ. 必要にかられたときにちょこちょこと elisp を書いて, 終わったらしばらく別れを告げる. そんな中途半端な付き合いを続けていた三月も終盤, 竹内先生の書かれた「初めての人のための LISP」を読み, その内容に深い感銘を受けた. Lisp を Lisp で実装する, といった章があり, これまで何となしに使っていた Lisp の中身を垣間見ることができたような, そんな気分になっていた. その時に, 「ひょっとしたら僕にも Lisp の処理系を実装でき

    JavaScript で Lisp の処理系 (と REPL) を実装してみた - mooz deceives you
  • 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 氏は

  • mitamex4uの日記

    Haxeをサポートしているエディタ、IDEはいくつもあります。 http://haxe.org/com/ide 私のおすすめの環境はWindows + FlashDevelopです。 FlashDevelopはHaxeの型情報をちゃんと理解していて、正確なコード補完をしてくれます。 これがあるのと無いのじゃ大違い。Haxeを使うならとにかくFlashDevelopを使いましょう。 Macでは、JetBrain WebStormにHaxeのプラグインを入れて使ってますが、FlashDevelopほど賢くないです。素直にVMWareFusionでWindowsを動かしてFlashDevelopしてください。 http://haxe.org/download?lang=jp からHaxeを http://www.flashdevelop.org/wikidocs/index.php?title=

    mitamex4uの日記
  • 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の日記
    jjzak
    jjzak 2008/10/06
    Scheme Compiler の勉強
  • はてなブログ | 無料ブログを作成しよう

    オーベルジーヌ実レポ べ物の鼻塩塩(未だに通じるのかな) オーベルジーヌというカレーをご存知だろうか 都内にあるデリバリー専門のカレー屋で、 ロケ弁などで大人気の格欧風カレーが楽しめるらしい いいな〜 いいな〜オブザイヤー 都内の奴らはこんな良いモンってんのか 許せねえよ………

    はてなブログ | 無料ブログを作成しよう
  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)

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

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

    いろいろ実験したいこともあり、WordPressでブログを作りました。新しく作った方は、個人的な軽い話題をメインにする予定ですが、よろしければどうぞお越し下さい m(_ _)m Y.FUJITA::NOTEPAD Mac App StoreでPinball Tristanが承認されたのでpromo codeでダウンロードしてテスト。すると・・・ xpchelper reply message validation: sandbox creation failed: 1002 Code identity not in ACL for container ~/Library/Containers/com.littlewingpinball.Pinball-Tristan-OSX/Data (if this is a self-signed app, see asctl(1) for how t

    Y.FUJITA::NOTEPAD::YPSILON
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

  • The SCK home page

    What is SCK SCK は GNU Emacs 上のマルチソース、マルチターゲットなコンパイラ作成支 援環境です。全てが Emacs Lisp で記述されているので、Emacs さえインストール されていれば簡単に利用することが出来ます。 仮定する GNU Emacs のバージョンは 21.4 以降で Meadow も含 まれます。OS については、Emacs が動作する Unix ライクな OS であり、 Cygwin も含まれます。現在ソース言語として C 及び簡単な関数型言語 (MinCaml) そして、ターゲットマシンとして x86 及び SPARC がサポートされています。 このプロジェクトは未踏ソフトウェア創造事業の支援を受けています。 Trial Use 上のアーカイブを適当な場所に展開し、そのルートにある sck.el を Emacs の load-file コマ

    jjzak
    jjzak 2008/06/04
    SCK は Emacs Lisp で実装された Emacs 上のマルチソース、マルチターゲットなコンパイラ作成支援環境
  • The SCK home page

    What is SCK SCK は GNU Emacs 上のマルチソース、マルチターゲットなコンパイラ作成支 援環境です。全てが Emacs Lisp で記述されているので、Emacs さえインストール されていれば簡単に利用することが出来ます。 仮定する GNU Emacs のバージョンは 21.4 以降で Meadow も含 まれます。OS については、Emacs が動作する Unix ライクな OS であり、 Cygwin も含まれます。現在ソース言語として C 及び簡単な関数型言語 (MinCaml) そして、ターゲットマシンとして x86 及び SPARC がサポートされています。 このプロジェクトは未踏ソフトウェア創造事業の支援を受けています。 Trial Use 上のアーカイブを適当な場所に展開し、そのルートにある sck.el を Emacs の l

    jjzak
    jjzak 2008/06/04
    SCK は Emacs Lisp で実装された Emacs 上のマルチソース、マルチターゲットなコンパイラ作成支援環境
  • Lua/組み込み - assari

    Captcha security check mokehehe.com is for sale Please prove you're not a robot View Price Processing

  • Planet SBCL

    Related Sites Planet Lisp Planet Cliki Archives Subscriptions Launchpad Bugs SBCL Commits Other stuff Syndicate Suggest a feed Planet SBCL is a meta blog that collects the contents of various SBCL-related blogs. It was inspired by Planet Lisp. Most times are listed in GMT.

  • Arc Forum | Arc

    install | tutorial | forum This site is about Arc, a new dialect of Lisp. Arc is designed for exploratory programming: the kind where you decide what to write by writing it. A good medium for exploratory programming is one that makes programs brief and malleable, so that's what we've aimed for. This is a medium for sketching software. Arc is unfinished. It's missing things you'd need to solve some

  • 社会の片隅から、ひとりごと:楽天ブログ

    エラーにより、アクションを達成できませんでした。下記より再度ログインの上、改めてミッションに参加してください。

    社会の片隅から、ひとりごと:楽天ブログ
  • LISPMEMO

    Emacs から SLIME を起動すると (http://lispuser.net/emacs/lisphacking.html , http://lispuser.net/commonlisp/clisp.html 参照) 、 CL-USER> というプロンプトが表示されていると思います。 CL-USER> ここに、プログラムを入力することで、 Lisp にプログラムを解釈させて結果を確認することができます。 さっそく Lisp にプログラムを実行させてみましょう。 CL-USER> (+ 1 2) 3 これは、 1 + 2 を計算させるプログラムです。 (+ 1 2) の意味は、関数 + パラメータとして 1 と 2 を渡す、という意味になります。 乗算を行いたい場合には関数 * を使用してみてください。 CL-USER> (* 3 4) 12 もちろん、式を入れ個にする事もできます

    jjzak
    jjzak 2008/02/06
    作って学ぶ Lisp (1) -- 超やさしいLispインタプリタの作り方
  • 式鬼言語 SikiLanguage

    航海日誌やってます。 解説始めました。 はじめに これは、星の数ほどあるスクリプト言語の、さらに別のバージョンのものです。 Forthを基として、CLOS + Scheme + IOを混ぜ込んだ、良くわからない方向を目指しています。 基礎的な部分しか実装していませんので、まだまだ実際に使えるレベルではありません。とりあえずは実装したアイディアを忘れないようにメモしているだけです。 基的な方針 一貫性のある簡素な原理 動作原理を含め、できるだけ簡単な方法で動作するようにします。 クラスや継続、名前空間なども含めて、単一の構造“Cell”(の組合せ)で実現します。 必要に応じて、低レベルな内容まで弄くれるようにします。 継続や戻り値でも何でも弄くれるようにします。 パース方法を含めて弄くれるようにします。 高度な応用 オブジェクト指向(インスタンス指向/プロトタイプ指向)や関数プログラミン

  • Clojure

    Clojure is a dynamic programming language for the JVM. Note - current Clojure development has moved to Google code: http://code.google.com/p/clojure/ Project web site: http://clojure.org

    jjzak
    jjzak 2007/12/03
    Java VM上で動くLisp風のプログラミング言語「Clojure」