タグ インタプリタ
人気順 5 users 50 users 100 users 500 users 1000 usersRuby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - 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... 続きを読む
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 はじめに プログラミングに携わるとコンパイルするという言葉をよく見かけます。 コンパイルという言葉に馴染みがなければ壁にぶつかるかもしれません。 今回は、コンパ... 続きを読む
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 のインタプリタを実装しま... 続きを読む
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の... 続きを読む
『Go言語でつくるインタプリタ』が出版されます | だらろぐ。
私が翻訳した” Writing An Interpreter In Go “の訳書『 Go言語でつくるインタプリタ 』が出版されます。 Go言語でつくるインタプリタ (www.oreilly.co.jp) Go言語でつくるインタプリタ | Thorsten Ball, 設樂 洋爾 |本 | 通販 | Amazon レビューに参加してくださったみなさま @cafedomancer @ursm @ju... 続きを読む
O'Reilly Japan - Go言語でつくるインタプリタ
Go言語でつくるインタプリタ Thorsten Ball 著、設樂 洋爾 訳 2018年06月16日 発売予定 316 ページ ISBN 978-4-87311-822-2 フォーマット Print PDF ePub mobi 原書: Writing An Interpreter In Go 本書は、Go言語でプログラミング言語のインタプリタを作りながら、プログラミング言語とそのインタプリタについ... 続きを読む
O'Reilly Japan - Go言語でつくるインタプリタ
Go言語でつくるインタプリタ Thorsten Ball 著、設樂 洋爾 訳 2018年06月16日 発売予定 316 ページ ISBN 978-4-87311-822-2 フォーマット Print PDF ePub mobi 原書: Writing An Interpreter In Go 本書は、Go言語でプログラミング言語のインタプリタを作りながら、プログラミング言語とそのインタプリタについ... 続きを読む
AWS LambdaがNode.js 8.10に対応。非同期処理を簡潔に記述できるasync/awaitサポート、新インタプリタ&コンパイラで省メモリかつ高速に - Publickey
AWS LambdaがNode.js 8.10に対応。非同期処理を簡潔に記述できるasync/awaitサポート、新インタプリタ&コンパイラで省メモリかつ高速に Node.js 8.10に対応したAWS Lambdaでは、非同期処理を簡潔に記述できる新しい構文のasync/awaitをサポートし、JavaScriptエンジンのV8に搭載された「Ignition」インタプリタと「Turbofan」J... 続きを読む
Perl の正規表現リテラル中の変数展開を読む
Perl の正規表現リテラル中の変数展開では、文法上、 解釈にあいまいさが生じることがあります。 この文章では、Perl インタプリタのソースコードから、 実装上でどのようにあいまいさが解決されるのかを説明します。 更新履歴 2008-06-05: 公開 Perl の判断 Perl では、文字列リテラルや正規表現リテラルの中で変数展開を行えます。 use Test::More tests => 2... 続きを読む
Cookpad Ruby Hack Challenge 開催報告 - クックパッド開発者ブログ
2017 - 09 - 29 Cookpad Ruby Hack Challenge 開催報告 技術部の笹田です。Ruby インタプリタの開発をしています。先日、RubyKaigi 2017 のために、広島に行ってきました(その話はまた別途)。 本記事では、2017/08/30, 31 に弊社で開催した Cookpad Ruby Hack Challenge (RHC) の模様についてご紹介します... 続きを読む
JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
本記事では、BFのインタプリタがナイーブなアプローチから最適化されたバイトコードにコンパイルするアプローチへと徐々に洗練され、その過程で10倍も高速化されていく様子を見ていきます。このソース言語と、その最適化に伴うトレードオフのいくつかについて理解を深めていきましょう。本記事は、JITコンパイラに関するシリーズの第1回目です。計画としては、シンプルな入力言語を使ってそのインタプリタとJITをいくつ... 続きを読む