並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 80件

新着順 人気順

インタプリタの検索結果1 - 40 件 / 80件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

インタプリタに関するエントリは80件あります。 プログラミングprogrammingtechfeed などが関連タグです。 人気エントリには 『「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!』などがあります。
  • 「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!

    目次 目次 概要 本題 私がこの本を購入した理由 数ある言語処理系の技術書でも恐らく最も初歩的 Goは現在恐らく最も可読性が高い言語 何故オススメ? プログラミングの本質が見えるから 単純にコード量が多いのでやってて楽しい テスト駆動開発 読者の為に残された多くの課題 総評 おまけ 概要 ※注意 Go言語でつくるインタプリタ 作者: Thorsten Ball,設樂洋爾出版社/メーカー: オライリージャパン発売日: 2018/06/16メディア: 単行本(ソフトカバー)この商品を含むブログを見る こちらの本を読み終わりました(付録以外)。 言語処理系に興味を持った衝動で買った本ではありましたが、 今まで読んだ本でもトップレベルで完成度の高いものだったので、 ここで紹介しておきたいと思います。 簡単に良いところをまとめておくと、 プログラミングの抽象的な概念をより深く学べる これは言語処理系

      「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!
    • Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined

      概要 最近はWebAssemblyに興味があり、勉強していたんだけど仕様を読み始めても頭に入らないのでインタプリタを作ってみることにした。よくわからないものは作ってみるのが一番よい。 github.com まだ残された課題は多いのだけれども、一つ目標にしていた「Goで書いたゲームボーイエミュレータを動かす」を達成できたのでここに書いておく。 うおーついにRustで書いた自作wasm interpreter上でgoで書いた自作gameboy emulatorが動いたー!けど1FPSくらいしかでない... pic.twitter.com/I5B2XL5E0W— bokuweb (@bokuweb17) 2020年2月24日 こツイートに貼られているのは残念ながら、静止画ではなく、動画でありパフォーマンスが悲しいことになっていることを示している。あまりに遅くてプレイ画面まで到達できない。今後これ

        Rustで書いたWebAssemblyインタプリタ上でGoで書いたゲームボーイエミュレータを動かした - undefined
      • Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現

        Python Software Foundationのステアリングカウンシル(Steering Council)は、Pythonのグローバルインタプリタロック(Global Interpreter Lock)を解消する方向で開発を進めていくことを明らかにしました。 グローバルインタプリタロックとは? グローバルインタプリタロックとは、その名前が示すとおりインタープリタ全体で1つのロックを持つことです。 これによりシングルスレッドのプログラムにおいては細かなロック制御が不要となって速度の向上がはかれる一方、マルチスレッドの平行性は制限されるという欠点があります。 また、スレッドセーフではないC言語などによるライブラリとの結合が容易となっています。 Pythonの標準実装であるCPythonでは、以前からグローバルインタプリタロックが採用されていました。 グローバルインタプリタロックを解消する

          Pythonがグローバルインタプリタロックの解消へ、マルチスレッド処理の高速化実現
        • インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装- - インプレスブックス

          5,940円(本体 5,400円+税10%) 品種名書籍 発売日2023/9/26 ページ数776 サイズB5変形判 著者 Robert Nystrom 著/吉川邦夫 訳 ISBN 9784295017875 本書は、言語の開発に興味がある方、プログラミングの知識や技術をさらに磨きたい方、コンピュータの処理系を詳しく知りたい方に最適な書籍です。筆者の豊富なプログラミング経験による解説は、ときに言語の歴史に触れ、ときにコンピュータサイエンスのエッセンスにも言い及ぶもので、たいへん読み応えがあります。言語開発は難易度の高さから敬遠されがちな技術分野ですが、本書ではそれらが、じつはさまざまな要素の集合体であることを紹介し、シンプルな技術の積み重ねとして、楽しんで学べるものとなっています。 目次を見る

            インタプリタの作り方 -言語設計/開発の基本と2つの方式による実装- - インプレスブックス
          • 「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog

            はじめに こんにちは。DSOC 研究開発部 Architect Group Data Direction Teamの有山です。 気温が上がってきて夏っぽくなってきましたね。毎年夏用にTシャツを集めるのが趣味なのですが、今年は個人的にブームが再燃してるGOODENOUGH*1を古着で集めようかなと考えています。 ところで皆さんは普段何の言語を書いていますか? Data Direction Groupでは主にPythonを使用していますが、ある時から四則演算の計算順序やif文の条件分岐はどうして正しく動くのだろうと疑問に思うようになり、実際に正しく動かしているシステムを理解してみたくなりました。色々検討した結果、「Go言語で作るインタプリタ」という本が内容的にも分量的にもちょうどよく、これを読み進めることにしました。 初めは読みながらコードを写経していましたが、複雑なロジックについては理解した

              「Go言語でつくるインタプリタ」をRustで実装しました。 - Sansan Tech Blog
            • Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記

              いよいよ「Go言語でつくるインタプリタ」がグランドフィナーレを迎えた。 そして、これで終わりだ。やり遂げた。これまでは私が誘う小さなお祝いを軽くあしらってきたとしても、いよいよ愉快なパーティ帽を被ってよい時間だ。 抜粋:: Thorsten Ball “Go言語でつくるインタプリタ” やったー。パーティーだ! なんでこの本を読んだの? 今までコンピュータサイエンをまともに学んだことがなかった。 大学生の時分、授業では「プログラミング」と銘打つものがあるくらいで、 Javaでアプレットを作ったり、Cでシステムプログラミングをしたりという程度だった。 あとは独学。あくまで目的達成のための学習。 GUIやWebアプリの高レイヤーの実装ばかりで、 中がどうなってるのかあんまり理解できてなかった(いわゆる電子工作は好きだったけど)。 で、なんとかやってきたんだけど、 コンピュータサイエンスを学んでい

                Go言語でつくるインタプリタがグランドフィナーレを迎えました - ゆーすけべー日記
              • C言語でWASMインタプリタを実装した話

                概要 公式のcore testが全て(UTF8, WAT, SIMD関連のものは除く)通るWASMインタプリタをC言語でフルスクラッチで実装した。自作WASMランタイムで省略されがちなValidation Stageも実装した。この記事はWebAssembly Advent Calendar 2023の三日目の記事である。 目的 このWASMランタイムを実装するにあたり、「できるだけ仕様に従って実装する」ことを心掛けた。WASMの仕様書は以下のissueが立つほど読みにくいものとなっているが、ランタイムをどのように実装すべきかが詳しく書いてあり、一応仕様書を頑張って読めばランタイムが作れるようになっている。 この自作WASMランタイムの目的は、できるだけ仕様に従った実装を与えることで、仕様の理解を助けることである。早さや効率性よりも分かりやすさを優先しているため、実用には向かない。仕様書を

                  C言語でWASMインタプリタを実装した話
                • Rubyインタプリタの品質向上のために個人的にやっていること - クックパッド開発者ブログ

                  技術部の笹田です。Ruby 3.2 無事にリリースされて良かったよかった。 Rubyインタプリタは複雑なプログラムなので、当然のごとくバグが入ってきます。Rubyインタプリタ開発者は、これに対していろんな対策をしています。たとえば、テストを書いて、CI環境でチェックするとか、今となっては当然のことを、当然のごとくやっています(RubyCIやchkbuild、ruby/spec: The Ruby Spec Suite aka ruby/specなどの整備や、実行環境の日々のメンテナンスの成果です)。 これに追加して、個人的にテストをとにかくたくさん繰り返し行うマシン群を用意しています。テストの実行頻度をなるべくあげて、「時々しか発生しない」というバグを炙り出して、Rubyインタプリタの品質向上を目指すためです。本稿ではそんな、ちょっとだけ変わったテスト環境についての話をご紹介します。 この

                    Rubyインタプリタの品質向上のために個人的にやっていること - クックパッド開発者ブログ
                  • RustでWebAssemblyインタプリタ作った話 - Qiita

                    はじめに RustでWebAssemblyインタプリタを作ったのでその実装の話や、wasmの仕様についての記事です。 HListを使ったジェネリックプログラミングの話や、最後の方には「自作言語 on 自作wasmインタプリタ on 自作wasmインタプリタ」みたいな話も出てきます。 分かりにくい所や間違っている所は指摘してくださると助かります。 リポジトリ 作った成果物のリポジトリです。まだpublishはしていませんがクレートになっています。 cargoのexample実行に対応しているのでそれを見ればだいたい分かると思います。 今回はadc-2019-12-22というタグがついたコミットのソースを元に解説していきます。 https://github.com/kgtkr/wasm-rs/tree/adc-2019-12-22 仕様書 この記事では仕様書を読みながら順番に実装を解説していき

                      RustでWebAssemblyインタプリタ作った話 - Qiita
                    • 書籍『Go言語でつくるインタプリタ』を写経してみた|TechRacho by BPS株式会社

                      今さらながら『Go言語でつくるインタプリタ』のとおりにMonkey言語を作ってみました。個人的に名著だと思います。 実際に買ったのはKindleの日本語版です。 英語版はこちら。 公式サイト↓には既に続編の「Writing A Compiler in Go」もありますので、こちらもそのうちやってみたいです(やってます)。 サイト: Writing An Interpreter In Go | Thorsten Ball サイト: Writing A Compiler In Go | Thorsten Ball 同書の特徴 同書の大きな特徴は「読みながら実際に作ってみる」ことを主眼においていることです。 それなりの規模のプログラミング言語を作ろうとすると、昔は(今でも)yaccやlexといったツールを使うことがよくあったようです(なおRubyの場合はbison(yaccの実装のひとつ)以外は

                        書籍『Go言語でつくるインタプリタ』を写経してみた|TechRacho by BPS株式会社
                      • Googleスプレッドシートの名前付き関数でLISPインタプリタを作った

                        Googleスプレッドシートの名前付き関数でLISPインタプリタを作った はじめに こんなの を作った。 エラーチェックをサボっていたり、 少し複雑な計算をすると途中で打ち切られたりするが、 それなりに遊べるはず。 Googleスプレッドシートとは Googleスプレッドシートはいわゆる表計算ソフト。 表に色々入力したり、色々計算させたりする。 =SUM(A2:A10) とか書くと2行A列から10行A列までの合計を計算してくれたりする。 スクリーンショットを貼り付けるためのソフトではないはず。 名前付き関数とは Googleスプレッドシートには前述のSUMの他にも色々関数があるが、 ユーザが自分で新しい関数を定義することもでる。 例えばNの階乗を求める関数を定義してみよう。 メニューの [データ] - [名前付き関数] を選択し、 [新しい関数を追加] をクリック。 [関数名] に FA

                        • ChatGPT上でコードを実行してデータ分析やグラフ化が可能な「コードインタプリタ」機能が追加、「誰でもデータアナリストになれる」時代の到来か

                          2023年7月上旬に、ChatGPT上でコードを実行したりアップロードしたファイルにアクセスしたりできる新機能「コードインタプリタ」が、ChatGPTの有料版であるChatGPT Plusのユーザー向けに展開されました。コードインタプリタを使用することで、コーディングの知識が少ない人でもデータを分析したり視覚的なチャートを作成したりできるようになり、「誰でもデータアナリストになれる」と評価されています。 ChatGPT — Release Notes | OpenAI Help Center https://help.openai.com/en/articles/6825453-chatgpt-release-notes Code Interpreter comes to all ChatGPT Plus users — 'anyone can be a data analyst now'

                            ChatGPT上でコードを実行してデータ分析やグラフ化が可能な「コードインタプリタ」機能が追加、「誰でもデータアナリストになれる」時代の到来か
                          • コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? | A-STAR(エースター)

                            コンパイラとは?構造や自作方法、おすすめのコンバイラの選び方を解説!インタプリタやアセンブラとの違いとは? スキル言語 Twitter facebook LINE はじめに プログラミングに携わるとコンパイルするという言葉をよく見かけます。 コンパイルという言葉に馴染みがなければ壁にぶつかるかもしれません。 今回は、コンパイラはどういうものなのか、コンパイラは何ができるのかなどについての紹介です。 コンパイラとは プログラミング言語に携わるとコンパイルやインタプリタ、アセンブラは、外せない用語です。 どの単語もざっくりいえばソースコードの実行方法になります。 コンパイラとは、人間と機械の間に立ってお互いの言葉を通訳する役割です。 コンパイラは、ソースコードを読み込んでコンピューターが理解できるように機械語へ翻訳します。 機械語をソースコードに変換する場合は、コンパイラではなく、逆コンパイラ

                            • Rustでインタプリタ

                              Lexerを作る Lexerとは Lexerとは、入力されたソースコードから構文を読み取り、意味のある形式に変換するための機能。 例えば、

                                Rustでインタプリタ
                              • 留学生からの哀れみの視線が耐えがたい - インタプリタかなくぎ流

                                新しい年度に入って、新学期からの授業の準備をしています。他に事務作業も大量にあって、まずは新入生の名簿を作るなどしているのですが、4月のこの時点になっても何人かの留学生がまだ来日できていません。 すでにうちの学校に在籍していて、一時帰国した際にコロナ禍の影響を受けて再入国できず、そのまま休学していた留学生は、入国を認められました。が、今年から新規に入学してくる留学生は、現在のところ一律に入国の許可が下りていない様子です。私が担当している学科は二年制なので、もとから日本に在住している留学生も多く、まだましな方です。でも一年とか半年のカリキュラムで留学生を受け入れている日本語学校は、どこも学生さんが払底しているそう。当面はオンライン授業で対応するようですが、長期化するようだと「日本に留学する」ことそのものの意義が問われる事態になりますよね。 だいたい、台湾とか中国とか韓国からの新規留学生に日本

                                  留学生からの哀れみの視線が耐えがたい - インタプリタかなくぎ流
                                • RustでWebAssemblyインタプリタを作った話

                                  RustでWebAssemblyインタプリタを作った話 本記事は「Wantedly 新卒 Advent Calendar 2021」の14日目の記事です。 5,6月にWebAssemblyインタプリタを作ったのでそれに関して話していきます。 主にWebAssemblyのフォーマットについての説明やどのような流れで開発を行ってきたかを話していきます。 コードはGitHubにて公開しているので興味のある人は見てみると面白いかもしれないです >_< (50 starちょうどで切りが良いのですがまだまだスターが欲しいですください) 話さないこと この記事ではWebAssemblyの概要に関する説明は行いません。WebAssemblyの目的や今後どのようなところで使われていくかなどは次のスライドにて丁寧に説明されているので興味のある人は見てみると良いと思います Introduction 今回作ったイ

                                    RustでWebAssemblyインタプリタを作った話
                                  • Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記

                                    Ruby言語の正規表現エンジンとしても使われているOnigmo(鬼雲)を高速化したのでその話をします。 Onigmoでは、正規表現のマッチにはバイトコードインタプリタを用いてNFAの実行をしています。バイトコードインタプリタの高速化には古くから知られている技法として、direct threaded codeがあり、この技法を用いればswitch-caseを用いて実装されたインタプリタと比べると間接jumpの除去が行えるなど高速化が期待できます。実際、Onigmoでもswitch-case によるdispatchからこのdirect threaded codeに変えることで高速化しています。 keens.github.io github.com ... と思ったらdirect threaded codeではなく、token threaded codeという実装になっておりました。(ref:

                                      Onigmoのインタプリタをdirect threaded codeに置き換えてCRubyを8%高速化した話 - 開発日記
                                    • コロナ後の「中国的なもの」に対するヘイトを憂慮する - インタプリタかなくぎ流

                                      「こんなたちの悪いウイルスは経験したことがありません」。神戸大学医学研究科感染症内科教授の岩田健太郎氏がご自身のブログでおっしゃっていました。「人々を油断させ、『ただの風邪』だと思わせ、世界中に、そして日本中にウイルスを撒き散らし、確実に多くの人たちを殺していきます。油断した人間を使ってウイルスを拡散させるのです」と。 georgebest1969.typepad.jp 今回のコロナ禍が始まってから一年あまり。それまで想像もしなかったような異様な空気の中で過ごす毎日が続いています。そこまで強烈な症状を引き起こす感染症のようではなさそうなのに、いざそれまでのように社会生活を営もうとすると「これはだめ」「あれもできない」と予想外の制約がかかる。特殊な環境に閉じ込められた人々の心理を描くスティーブン・キングの『ザ・ドーム』や『霧』(そしてフランク・ダラボン監督によるその映画化作品『ミスト』)を彷

                                        コロナ後の「中国的なもの」に対するヘイトを憂慮する - インタプリタかなくぎ流
                                      • 語学における「威張り系」や「昔取った杵柄系」について - インタプリタかなくぎ流

                                        昨日は都内のとある通訳学校で、一日限りの講座を担当してきました。私みたいに細々と通訳業務や通訳教育を続けているだけの人間が講師というのも申し訳ないのですが、幸いにも毎回満席で、こちらも身が引き締まる思いです。一日限りなので、ふだんこの学校に在籍されている方の他に、外部からも多くの生徒さんが参加されます。しかも今回は日本語だけを使った訓練だったので、中国語だけでなく英語など他の言語で通訳や翻訳を学んでいる生徒さんも多くいらっしゃいました。 その中におひとり、年配の男性が参加されていました。この方は最初から大幅に遅刻して来られた上に、よく大声で質問なさる。もちろん質問は大歓迎なのですが、その質問がやや的外れなのと、ご自身の語学力アピールに偏っているのが少々気になりました。例えば、今回はノートテイキング(通訳のメモ取り)についての講座だったのですが、「同時通訳ではメモ取らないよな*1」とおっしゃ

                                          語学における「威張り系」や「昔取った杵柄系」について - インタプリタかなくぎ流
                                        • MS、1983年に開発のBASICインタプリタをOSS化

                                          Microsoftは米国時間2020年5月21日、IBM Advanced BASICを元にMicrosoftが1983年に開発したBASICインタプリタ「GW-BASIC」をオープンソースとしてGitHubで公開した。歴史的な資料提供を目的とし、生成に必要なビルドスクリプトやMakefileをはじめとするとツール群、ビルド済みのバイナリは含んでいない。 アセンブラコードやヘッダファイルなどが並ぶ 1975年にMicrosoftはAltair 8800用にBASICを移植し、そこから1980年初頭にかけて多くのコンピューターへBASICを移植してきた。公式ブログでは、「(当時の)家庭用コンピューターやパーソナルコンピューターで使用されていた初期プロセッサーのISA(命令セットアーキテクチャー)は、目を見張るような違いがなかった。Microsoftはマスターコードから多くの移植が可能だった」

                                            MS、1983年に開発のBASICインタプリタをOSS化
                                          • 「ロシア人に自宅を破壊されたので今後の保守は最低限」と高速インタプリタ「Wasm3」の開発者が発表

                                            最速のWebAssemblyインタプリタをうたっているウクライナのオープンソースプロジェクト「Wasm3」の開発者が、自宅がロシア軍の攻撃により被害を受けたことを明かし、当面はメンテナンスを最小限にとどめると発表しました。幸い、開発者と開発者の家族は全員無事とのことです。 GitHub - wasm3/wasm3: A fast WebAssembly interpreter and the most universal WASM runtime https://github.com/wasm3/wasm3 Wasm3のX(旧Twitter)アカウントは2023年12月18日に、「私の家が私の国に侵攻したロシア人によって破壊されたため、Wasm3はメンテナンスを最小限とする段階に入ったことをコミュニティにお知らせします」と告知しました。 I regret to inform the com

                                              「ロシア人に自宅を破壊されたので今後の保守は最低限」と高速インタプリタ「Wasm3」の開発者が発表
                                            • 語学は確かに役には立つけれど - インタプリタかなくぎ流

                                              現在、複数の仕事を掛け持ちしていますが、メインで働いている職場は東京都心のターミナル駅から歩いて10分ほどのところにあります。その道の途中にとあるオフィスビルがあって、その前を通るときはいつもビルの8階か9階あたりを見上げてしまいます。以前はそこに某語学学校の看板がありましたが、今は見あたりません。大手の語学学校チェーンではなく、マンツーマン指導を売りにした新進気鋭のベンチャー系(?)語学学校だったのですが、おそらく業界から撤退してしまったのだと思われます。 もうそこにあの学校はないと分かっているのに、つい見上げてしまうのは、かつて就職のための面接に行ったことがあるからです。7年ほど前に突然前の職場を辞めることになり、フリーランス(とはいえ実態はほぼ無職)の仕事と、認知症の兆しが見えていた義父と同居しての家事を両立させながら、ハローワークに通っていた頃でした。その学校は、ハローワークの職員

                                                語学は確かに役には立つけれど - インタプリタかなくぎ流
                                              • 「日本語を話す外国人」という存在がよくわからない? - インタプリタかなくぎ流

                                                インターンシップという制度があります。学生さんが一定期間企業などで「就業体験」をすることです。実はうちの学校にもこの制度がありまして、主に日本での就職を希望する留学生が、短い期間ながら様々な業界の企業におじゃまして、日本企業での仕事の進め方や企業風土などを学んでいます。 さまざまな企業で就業体験をするので、インターンシップ期間が終了した後、参加者全員が集まってお互いの体験や気づきをシェアする機会を持ちます。私も留学生のみなさんのお話を聞きに行ったのですが、グループディスカッションの最中に、興味深い意見を聞くことができました。複数の留学生いわく…… もう少し、私たちの語学力を信頼してくれたら、うれしかった。 うちの学校のインターンシップは、基本的に一企業一人の割り当てです。それぞれの留学生はインターンとはいえ容赦ない日本語が飛び交う企業の現場で、日本語を駆使して孤軍奮闘しなければなりません。

                                                  「日本語を話す外国人」という存在がよくわからない? - インタプリタかなくぎ流
                                                • Juliaの速さの核心に迫る〜インタプリタ、コンパイラ、JITコンパイラ〜 - SEむううみんのプログラミングパラダイス

                                                  新星プログラミング言語Julia。 Rubyの動的さとC言語の速度を両立させた、公認会計士の資格を取得したジャニーズJr.みたいな、そんなのアリかよって感じの言語だ。 Juliaの宣伝文句はすごい。引用してみよう。 僕らが欲しい言語はこんな感じだ。まず、ゆるいライセンスのオープンソースで、Cの速度とRubyの動的さが欲しい。Lispのような真のマクロが使える同図象性のある言語で、Matlabのように分かりやすい数学の記述をしたい。Pythonのように汎用的に使いたいし、Rの統計処理、Perlの文字列処理、Matlabの線形代数計算も要る。シェルのように簡単にいくつかのパーツをつなぎ合わせたい。チョー簡単に習えて、超上級ハッカーも満足する言語。インタラクティブに使えて、かつコンパイルできる言語が欲しい。 (そういえば、C言語の実行速度が必要だってのは言ったっけ?) こんなにもワガママを言った

                                                  • FOMO - インタプリタかなくぎ流

                                                    台湾発のSNSで、基本的には大学生専用のプラットフォームとして人気のある「Dcard」(日本でも「Dtto」という名前でサービスが提供されています)。そのDcardのYoutubeチャンネル「Dcard Video」*1の動画で「FOMO」という言葉を知りました(14:00〜)。 www.youtube.com FOMOは“fear of missing out(取り残されることへの恐れ)”の略で、ウィキペディアにはこんな解説が載っていました。 「自分が居ない間に他人が有益な体験をしているかもしれない」、と言う不安に襲われることを指す言葉である。 また、「自分が知らない間に何か楽しいことがあったのではないか」、「大きなニュースを見逃しているのではないか」と気になって落ち着かない状態も指すことから、 「見逃しの恐怖」とも言う。社会的関係がもたらすこの不安は、「他人がやっている事と絶え間なくつ

                                                      FOMO - インタプリタかなくぎ流
                                                    • Rubyがブラウザで動くってことはRubyでプログラミング言語のインタプリタを作れればどんな言語でもブラウザで動かせるのでは...!? - Qiita

                                                      Rubyがブラウザで動くってことはRubyでプログラミング言語のインタプリタを作れればどんな言語でもブラウザで動かせるのでは...!?Rubytips はじめに Rubyはバージョン3.2からWebAssembly(WASM)に対応をしています。 詳しくは以下の記事をご覧ください。 RubyでWASMを触っているうちに、「Rubyがブラウザで動くってことはRubyでプログラミング言語のインタプリタを作れればどんな言語でもブラウザで動かせるのでは...!?」という当たり前なことに気づきました。 この記事では、ruby.wasmで簡単なプログラミング言語のインタプリタを作成した話を紹介します。 半分ネタ記事です。 やること 今回は以下のようなステップでランタイムを作っていきます。 プログラミング言語の構文を定義し、それをパース、実行できるRubyのプログラムを実装する ブラウザでプログラムを入

                                                        Rubyがブラウザで動くってことはRubyでプログラミング言語のインタプリタを作れればどんな言語でもブラウザで動かせるのでは...!? - Qiita
                                                      • PEP 703 グローバル・インタプリタ・ロックを除去可能に の解説 - python.jp

                                                        先日、Pythonの仕様を決定する Steering Council が PEP 703 – Making the Global Interpreter Lock Optional in CPython に関するコメントを発表し、大きな話題を呼びました。 最終的にこのPEPがどのようになるのか、まだ結論は出ていませんが、Pythonの将来に大きな影響を与えることになるでしょう。 ここでは、PEP-703がどのようにPythonを改善しようとしているのか、概略を説明します。 GILとは?¶まず、グローバル・インタプリタ・ロック(GIL) とはなんでしょう? Pythonでは、スレッドを利用して複数の処理を同時に実行できます。次の処理は、100万個の整数の二乗和を計算する関数を、2つのスレッドで同時に実行しています。 from concurrent.futures import ThreadP

                                                        • AIを使った英会話アプリ「Speak」 - インタプリタかなくぎ流

                                                          アメリカのベンチャー企業「Open AI」が開発したChatGPTが話題になっていますが、「テレ東BIZ」でその教育への応用例(!?)が紹介されていました。「!?」をつけたのは、その使い方が少なからずこれまでの教育のあり方に変革をもたらすだろうなと思うと同時に、それでいいのだろうかという根本的な疑問もまた湧き上がってきたからです。 www.youtube.com 動画をご覧いただければわかりますが、教育への応用例としてここではふたつ紹介されています。ひとつは大学の英語講師が教材を作っているところ。これはかなり衝撃的です。なにせ私も語学の講師としてこのような教材をそれこそ無数に作って来たからです。 教材を作るのはそれなりに手間暇と時間と技術が要りますし、そうした教材の作成能力が教師や講師のスキルないしキャリアのかなりの部分を占めてきたわけですが、ここではそれが大幅に不要になる未来(というかも

                                                            AIを使った英会話アプリ「Speak」 - インタプリタかなくぎ流
                                                          • Lispインタプリタを作った - 日常と進捗

                                                            とうとうApple MusicにPerfumeが追加されたので、ここ数日はワンルーム・ディスコを聞きながらコーディングをしている。 Perfume、良い。良すぎる。幸せになれる。 そう、幸せといえばLisp。 1週間労働を耐え抜いてまた週末にのんびりLispを書ける。 安定感がすごい。 そんな感じで週末Lisperとして今日もLispに向き合っていたのだけれど、そういえば前にLispでCのコンパイラを書く個人プロジェクトを立ち上げたものの完全に放置していたのを思い出した。 で、久しぶりに取り組もうと書きかけのコードを見ていたのだが、なんかグッとこない。 どうも自分のコードにときめかない... ということで中途半端な自分のクソコードをガチャガチャ触って気分の悪い土曜日にしてしまうくらいならまた別のプロジェクトをやった方がいいだろうと判断。 ただ、全く別の何かをやるのも少し気が引けたので、コン

                                                              Lispインタプリタを作った - 日常と進捗
                                                            • もうWordには戻れない - インタプリタかなくぎ流

                                                              昨年の夏、『ライティングの哲学』をよんですぐに「アウトライナー」を使い始めました。アウトライナー(アウトラインプロセッサ)とはその名の通り、文書のアウトラインをざっくりと作るためのツールで、思いついた端からどんどん入力していき、かつあとから文書の体裁を整えるために削除や入れ替えや階層構造の変更などを簡単に行えるようになっています。エディタと呼ばれる、テキストを書くためのシンプルなワープロと似ていますが、画面上のドラッグで文章や段落を簡単に移動できるので、とても便利です。 文章や段落を移動するだけならワープロソフト上のコピー&ペーストでも十分のような気がしますが、やってみるとアウトライナー上の操作のほうが格段に楽です。この操作性の楽さ加減ゆえに「後先考えず」どんどん文章を書くことができるというのがアウトライナーの魅力ではないかと思います。なにせ文章というものは、書き始める前はとてつもなく高い

                                                                もうWordには戻れない - インタプリタかなくぎ流
                                                              • 数式言語を使って、インタプリタとコンパイラの違いを説明してみる - Qiita

                                                                まえがき 先日、ツイッターで、(ある程度言語処理系に関わった人なら常識的な)「「コンパイラ型言語」と「インタプリタ型言語」という分類は誤り」という趣旨のことをつぶやいたところ、予想していなかった大きな反響をいただきました。 個々の反応については「うんうん、そうだよね」と思うものもあれば「いや、それは違うんじゃ」と思うものもあり、色々な意見を見られて有意義でしたが、その中で湧いた一つの疑問がありました。それは、「皆、インタプリタが何をやっているかイメージできていないのでは?」というものです。もちろん、トイ言語であれ何か言語処理系を作ったことがある人であればイメージできていないはずはないのですが、実際には、トイ言語であっても作ったことがある人というのは存外少ないものです。 そこで、この記事では、Kotlinで書かれた、簡単な数式言語のインタプリタとコンパイラを使って、それらの違いについて説明て

                                                                  数式言語を使って、インタプリタとコンパイラの違いを説明してみる - Qiita
                                                                • その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog

                                                                  # その正規表現エンジン、<br /><span class="narrow"><span>イ</span><span>ン</span><span>タ</span><span>プ</span><span>リ</span><span>タ</span></span>で<ruby>満足<rp>(</rp><rt>サティスファイ</rt><rp>)</rp></ruby>してる?! ---------------------- [Regex Festa - connpass](https://opt.connpass.com/event/140566/) === # About Me --------- ![κeenのアイコン](/images/kappa.png) * κeen * [@blackenedgold](https://twitter.com/blackenedgold) * Git

                                                                  • Zig で簡単な Lisp インタプリタを書いてみた。

                                                                    はじめに 先日 Zig で JSON パーサを書いて Zig がどういう言語なのか、だいたい理解できたので Lisp インタプリタを実装してみた。 簡単な実装なので四則演算と変数定義、関数呼び出しくらいしか実装してない。 ちゃんと文法チェックなどをやってないので、変な Lisp コードを渡すと落ちる。これはいずれ直す予定。 実装中に知った Zig の記法 blk 名前付きブロックで値が返せる。 const std = @import("std"); pub fn main() anyerror!void { std.log.warn("{}", .{ blk: { const d: u32 = 5; const e: u32 = 100; break :blk d + e; }, }); }

                                                                      Zig で簡単な Lisp インタプリタを書いてみた。
                                                                    • 『愛你』が18年ぶりにヒットしたって - インタプリタかなくぎ流

                                                                      YouTubeで中国語の動画をいろいろと視聴していたら、偶然この動画を見つけました。台湾の歌手で女優の王心凌(ワン・シンリン/シンディー・ワン)往年のヒット曲《愛你》が18年ぶりに再び中国大陸でヒットし、その後に《從何說起》という番組でインタビューを受けている動画です。 www.youtube.com 【專訪】王心凌對翻紅的看法?從未想過拿C位? 再ヒットしたきっかけは《乘風破浪》というオーディションバラエティ番組に出演して歌ったことだそうですが、その後SNSなどで「踊ってみた」系のショート動画が多数投稿されるなど、往年のファンに加えて新たなファンも獲得しつつあるのだとか。 私は18年前にこの曲がヒットしたとき、ちょうど台湾で働いていたのでCDを買った覚えがあります。そのときにブログ記事を書いた記憶があるので探してみたら、ありました。すごく懐かしいです。実は当時私もこの曲のMVを見ながら「

                                                                        『愛你』が18年ぶりにヒットしたって - インタプリタかなくぎ流
                                                                      • 言葉を発見したからこそ続く - インタプリタかなくぎ流

                                                                        ふっつりとお酒を飲まなくなってから、きょうで90日になります。3ヶ月もお酒を飲まなかったのは、もちろん初めて。そして、あんなにお酒が好きだったのに、いまでは不思議なほど「飲みたい」と思わなくなりました。 ここ10年ほど血圧が高くなってきたので、もう長いあいだ休肝日を設けなきゃとか節酒しなきゃなどとあれこれ試してきたのに、一度も続きませんでした。なのにどうして今回に限ってあっさり成功できたのかがいまだに謎なのですが、ひとつだけ思い当たることがあります。 それは「ソバーキュリアス(Sober Curious)」という言葉に出会ったことです。これは「しらふでいることへの興味」、つまりお酒を飲んでいる状態よりも飲んでいない状態の方により積極的な価値を見出すというものですが、「あえて」しらふでいるというのがポイントです。私はこの言葉に『「そろそろ、お酒やめようかな」と思ったときに読む本』で出会いまし

                                                                          言葉を発見したからこそ続く - インタプリタかなくぎ流
                                                                        • O'REILLY の『Go言語でつくるインタプリタ』が良かったので、続きの洋書『WRITING A COMPILER IN GO』 もやってみた - Qiita

                                                                          O'REILLY の『Go言語でつくるインタプリタ』が良かったので、続きの洋書『WRITING A COMPILER IN GO』 もやってみたGoコンパイラ この記事は Go Advent Calendar 2022 カレンダー 2 の 21 日目の記事です。 『WRITING A COMPILER IN GO』という書籍を読んでコンパイラを作ってみたので、その書籍について紹介します。 『Go言語でつくるインタプリタ』と『WRITING A COMPILER IN GO』について まず、『Go言語でつくるインタプリタ』については、 O'REILLY から 2018 年に日本語訳版が発売されたものとなります。 書籍で想定したオリジナルの言語 Monkey のインタプリタを実装していくという内容になっています。 ステップバイステップで少しずつ作っていく流れがわかりやすく、私も楽しくインタプリ

                                                                            O'REILLY の『Go言語でつくるインタプリタ』が良かったので、続きの洋書『WRITING A COMPILER IN GO』 もやってみた - Qiita
                                                                          • WebAssemblyでLISPインタプリタを書いた

                                                                            WebAssemblyでLISPインタプリタを書いた WebAssemblyでLISP 1.5の処理系を書いた。 超高速WebAssembly入門 まずは このページ を読もう。 WebAssemblyのデータ型 WebAssemblyには基本的に整数型と浮動小数点数型しかない。具体的には i32, i64, f32, f64 の4種類。 文字列はC言語のように整数の並びとして表現する。 WebAssemblyのメモリ WebAssemblyにはデータを置く場所として、 スタック、ローカル変数、グローバル変数、メモリがある。 メモリはアドレスを介したアクセスができる。 逆に言えばスタック、ローカル変数、グローバル変数はアドレスを取得できない。 アドレス経由でアクセスしたいものはメモリに置く必要がある。 ;; 初期値0のグローバル変数 (global $gp (mut i32) (i32.c

                                                                            • アスリートも黙ったまま同調しないでほしいのです - インタプリタかなくぎ流

                                                                              一週間ぶりにジムのパーソナルトレーニングに行きました。東京都に緊急事態宣言が出されてからというもの、いつも出勤前に行っていた大手鉄道会社系のジムは休業が続いていて、ウェイト系のトレーニングがまったくできないので身体がなまってしかたがありません。なので一週間ぶりにベンチプレスなどをやって、とても爽快な気分でした。 日曜日の、それもジムの営業開始とともに入って一時間ほどトレーニングをします。本当は平日の退勤後にも通いたいのですが、夕刻のこのジムはけっこうな「密」になっていて、少々たじろぎます。加えて、こちらのジムでトレーニングをしているプロやセミプロ、学生さんのアスリート(野球やサッカーなどの選手が多いです)は、なぜかそのほとんどがマスクをしていないのです。これはちょっと感染の拡大が怖い。それで、アスリートのみなさんがまだやって来ない週末の早朝のうちにトレーニングをしに行っているというわけ。

                                                                                アスリートも黙ったまま同調しないでほしいのです - インタプリタかなくぎ流
                                                                              • Rust で JSON5 を実行するインタプリタを作って自作言語の高速スタートアップをしよう|TechRacho by BPS株式会社

                                                                                こんにち自作言語!(挨拶) 世の中のには 2 種類の人がいます。自作言語を作っている人と、これから自作言語を作る人です。(筆者の脳内調査) いや別に自作言語作らない人もいるだろって思いました? こんなタイトルの記事を読んでいるのだからあなたはこのどちらかですよね? どちらでもない? じゃあこれから自作言語を作る人になってください(圧) かく言う私も長年自作言語ワナビーをやっており、ときおり制作に手を付けては放置し、結局なかなか作れずにいるという現状で、ここをどうにか突破したい、と思いこの記事を書いています。 あっちなみに、言うまでもないとは思いますがこの記事における言語=プログラミング言語です。クウェンヤとかシンダールとかエスペラントとかリパラインとかの世界ではないです。ちなみにあっちはよく「人工言語」という言葉が使われるっぽいですね。もっとも「人工言語」は「自然言語」に対比する言葉で、プ

                                                                                  Rust で JSON5 を実行するインタプリタを作って自作言語の高速スタートアップをしよう|TechRacho by BPS株式会社
                                                                                • 【エンジニアの悪夢】日本HPE、京大スパコンのデータ77TBをLOST、全面謝罪▶理由を読んだ皆さん「インタプリタ怖い」「胃が痛くなる」

                                                                                  これは怖い…。自分現役の頃、Backupは世代管理してたけどなぁ。最近はやらないのかな…。 余談:実はtogetterも排他処理がないので同じまとめに対してうっかり複数編集窓を開いて変な上書きすることが…^^;

                                                                                    【エンジニアの悪夢】日本HPE、京大スパコンのデータ77TBをLOST、全面謝罪▶理由を読んだ皆さん「インタプリタ怖い」「胃が痛くなる」

                                                                                  新着記事