タグ インタプリタ
人気順 10 users 50 users 100 users 500 users 1000 users美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita
タイトル: 「東京プログラマー リスプを書かずにはいられない物語」 新宿の夜景を見下ろすカフェで、主人公の大輔は、ノートパソコンに向かって静かにキーボードを叩いていた。彼は東京で働くプログラマー。コードの世界に浸り、特に最近夢中になっているのが関数型言語LISPだった。 LISPは、数学のように純粋で美しい... 続きを読む
JavaScriptで100行で作る!数式言語のインタプリタ
皆さんはプログラミング言語を作ったことがあるでしょうか? おそらく大抵の方は「ない」というのが正直なところなのではないかと思います。背景には、おそらく「プログラミング言語を作るって難しそう」という先入観があるのではと筆者は踏んでいます。 プログラミング言語とは、コンピューターに指示を与えるための特... 続きを読む
Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミ... 続きを読む
Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog
テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そ... 続きを読む
インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装- - インプレスブックス
5,940円(本体 5,400円+税10%) 品種名書籍 発売日2023/9/26 ページ数768 サイズB5変形判 著者 Robert Nystrom 著/吉川邦夫 訳 ISBN 9784295017875 本書は、言語の開発に興味がある方、プログラミングの知識や技術をさらに磨きたい方、コンピュータの処理系を詳しく知りたい方に最適な書籍です。筆者の豊富なプログラ... 続きを読む
rubyで仮想DOMを扱えるようにする「ruby-wasm-vdom」をライブラリとして公開しました - Qiita
この記事は何 以前Qiitaで以下のようなRubyで仮想DOMを扱う方法を記事にしました。 これらで紹介した仮想DOMを使って、Brainf*ckのインタプリタを作ってみたのですが、簡単なプロトタイプを作るのにはかなり便利なことが改めて実感できたので、せっかくなのでライブラリとして公開してみました。 この記事では作成したru... 続きを読む
JavaScriptのJITをざっくり理解する会
普段自分たちが書いているJavaScriptという言語はスクリプト言語であり、インタプリタで実行する。がそれは言語の制約ではなく実行環境の制約になるはず。 現在JavaScriptの実行環境としてはNode.jsやChromiumに使われているV8というGoogle製のJavaScriptエンジンが特に知られているものになると思う 続きを読む
RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応
RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応 Ruby言語のインタプリタをWebAssemblyランタイムで実行できるようにする移植作業が実現しました。WebAssembly版Rubyのバイナリファイルがプレリリース版として公開され、実際に試すことができます(ruby/ruby.wasm)。 RubyのWeb... 続きを読む
コンパイル時計算でラムダ計算の構文解析器・評価器・型推論器を実現 (Scala 3編) - 貳佰伍拾陸夜日記
またか. またなのか. 何回目だ. ということで, ラムダ計算のインタプリタの実装としては4回目くらい*1, コンパイル時計算でやるものとしても3回目くらいになってしまうけど, ラムダ計算の処理系をまた書いてしまった. 今回の目的は, Scala 3にはmatch typesという機能があり, これだけでチューリング完全なのではないか,... 続きを読む
Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記
Ruby言語の正規表現エンジンとしても使われているOnigmo(鬼雲)を高速化したのでその話をします。 Onigmoでは、正規表現のマッチにはバイトコードインタプリタを用いてNFAの実行をしています。バイトコードインタプリタの高速化には古くから知られている技法として、direct threaded codeがあり、この技法を用いればswitc... 続きを読む
Rが好きすぎてRでJVMを実装したnoteエンジニアに話を聞いてみた|note株式会社
そんなあるときに、めもりーさんという方がPHPでJVMを実装しているツイートを見つけました。「これはおもしろいな」と思うと同時に「PHPでできるならRでもできるだろう」という思いがこみ上げてきて開発することにしました。 ー そんなに簡単にやってみようと思ったんですね(笑) もともとコンパイラやインタプリタは作... 続きを読む
自作コンパイラ基盤の話 - Qiita
これは、言語実装 Advent Calendar 2020 19日目の記事です。 最近は、コンパイラやインタプリタなどの言語処理系や、それに類するものを作る人が増えてきています。(私の周りだけかもしれませんが。) しかし、もう一歩進んで、コンパイラ基盤を作ってみたという話はあまり聞きません。 コンパイラ基盤は、それの対象とす... 続きを読む
書籍『Go言語でつくるインタプリタ』を写経してみた|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
今さらながら『Go言語でつくるインタプリタ』のとおりにMonkey言語を作ってみました。個人的に名著だと思います。 実際に買ったのはKindleの日本語版です。 英語版はこちら。 公式サイト↓には既に続編の「Writing A Compiler in Go」もありますので、こちらもそのうちやってみたいです(やってます)。 サイト: Writing ... 続きを読む
コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? | A-STAR(エースター)
コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? スキル言語 Twitter facebook LINE はじめに プログラミングに携わるとコンパイルするという言葉をよく見かけます。 コンパイルという言葉に馴染みがなければ壁にぶつかるかもしれません。 今回は、コンパ... 続きを読む
Ruby3 さみっと online 開催報告 - クックパッド開発者ブログ
Ruby インタプリタの開発をしている技術部の笹田です。以前から自主的にリモートワーク状態だったので、あまり仕事環境は変わっていません。が、子供の保育園の登園を自粛しているため、色々大変です(主に育休中の妻が)。日常がはやく戻ってくれることを祈るばかりです。 さて、去る 4/17 (金) に、Ruby3 さみっと onl... 続きを読む
Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined
概要 最近はWebAssemblyに興味があり、勉強していたんだけど仕様を読み始めても頭に入らないのでインタプリタを作ってみることにした。よくわからないものは作ってみるのが一番よい。 github.com まだ残された課題は多いのだけれども、一つ目標にしていた「Goで書いたゲームボーイエミュレータを動かす」を達成できたの... 続きを読む
Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記
いよいよ「Go言語でつくるインタプリタ」がグランドフィナーレを迎えた。 そして、これで終わりだ。やり遂げた。これまでは私が誘う小さなお祝いを軽くあしらってきたとしても、いよいよ愉快なパーティ帽を被ってよい時間だ。 抜粋:: Thorsten Ball “Go言語でつくるインタプリタ” やったー。パーティーだ! なんでこの本... 続きを読む
TypeScript で型レベル Brainfuck - Object.create(null)
TypeScript の型システムはチューリング完全ということが知られていますが, 同じくチューリング完全な言語である Brainfuck のインタプリタを実装することで, その計算能力を確認することができます. この記事のコードは TypeScript 3.8.3 で動作確認しています. ゴール 型レベルで Brainfuck のインタプリタを実装しま... 続きを読む
ゼロからはじめるプログラミング言語Rust(3) 他のプログラミング言語から見たRustの特徴とは? | マイナビニュース
簡単ではないRust Rustは、開発者から愛されてやまないプログラミング言語なのだが、残念ながら楽ちんとは言い難い。インタプリタが利用できて、数行入力すればいろいろ試せるタイプのプログラミング言語ではないのだ。こうした点から、Pythonといったプログラミング言語とは違う立ち位置にいるのだ。 最初に学ぶプログ... 続きを読む
ISMM 2019 で発表してきました - クックパッド開発者ブログ
技術部の笹田です。遠藤さんと同じく Ruby のフルタイムコミッタとして、Ruby インタプリタの開発だけをしています。 先日、アメリカのフェニックスで開催された ISMM 2019 という会議で発表してきたのと、同時開催の PLDI 2019 という会議についでに参加してきたので、簡単にご報告します。 カンファレンス会場 ISMM 20... 続きを読む
Ruby 2.6 の改善を自慢したい - クックパッド開発者ブログ
技術部で Ruby インタプリタの開発をしている笹田です。娘のために、今年はじめて大きなクリスマスツリー(1.8 m)を買いました。 本稿では、私が Ruby 2.6 で取り組んだ中から、次の新しい機能と性能改善について紹介します。どちらのトピックも、普通に Ruby を使っているだけなら気にならない、玄人向きの記事になっ... 続きを読む
Go言語の golang/go パッケージで初めての構文解析ハンズオン - Qiita
この記事は、Go Advent Calendar 2018の5日目の記事です。 「Go言語でつくるインタプリタ」を読んで、プログラミング言語の「仕組み」に興味がでてきた。そして、Go言語だと構文解析が簡単に出来るとの噂が!ということで golang/go をパッケージ触ってみると、Go言語で出来る事のイメージが更に広がった。せっかくなの... 続きを読む
インタプリタ開発者によるRubyの挙動解析への道 - クックパッド開発者ブログ
Ruby インタプリタを開発している笹田です。今年のクリスマスにリリース予定の Ruby 2.6、楽しみですね(無事、出るといいな)。 この記事では、私がRubyの挙動を調べるために頑張った記録を書いておきます。 基本的に、単純作業の積み重ねなので、難しい内容はありません。お気楽にお読みいただければ幸いです。 大雑把... 続きを読む
Rust LT#2 で話をしました & その話の詳細な解説 - Don't Repeat Yourself
Rust LT#2 で話をしました.「インタプリタを作ってまなぶ Rust らしい書き方」という話です.内容は実は,Ruby のコードを Rust のコードに置き換えてみようという内容でした.Ruby 製のインタプリタを Rust に置き換えるセッションです. speakerdeck.com しかし,5分では無理がありました.とくにインタプリタを2分以... 続きを読む
『Writing An Interpreter In Go / Go言語でつくるインタプリタ』 #golang - razokulover publog
Writing An Interpreter In Goという本を読んだ。 この本はMonkeyという言語のインタプリタをGo言語で実装するという内容。 全編英語だが、200ページほどだし語り口も面白くてわかりやすいので読みやすい。 流れとしては大きくLexer・Parser・Evaluaterの章に分かれていて、それぞれ字句解析〜抽象構文木〜評価器をGoの... 続きを読む