並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

処理系の検索結果1 - 40 件 / 40件

  • 「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!

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

      「Go言語でつくるインタプリタ」は前提知識無しで取り組める言語処理系のチュートリアル - Explore cs in depth!
    • 新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話

      私は新たにプログラミング言語を学ぶとき、しばしば簡単なLisp処理系を作ってみます。いくつかの言語で取り組んでいるうちに、このLisp処理系群に小さな共通基盤も出来上がったりしているので、これを紹介しつつ、Lisp処理系の実装がプログラミング言語の学習にどう丁度いいのかを紹介します。 Rosetta Lisp 自作のLisp処理系群を、ロゼッタ・ストーンから名を借りてRosetta Lispと呼んでいます。Rosetta Lispは以下のような特徴を持ちます。 一定の共通した言語仕様・VMの仕様に基づいて動作する Rosetta Lispは (Rosetta Lispに準拠するLisp処理系群は)、いずれも共通した命令セットのVM上でLispプログラムを実行するように実装されています。 Lispの簡単な実装では、よくインタプリタ形式が採用されます。kanaka/malやrui314/min

        新しいプログラミング言語を学ぶとき、簡単なLisp処理系を作るという話
      • Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ

        先月、国内最大のセキュリティ研究会であるコンピュータセキュリティシンポジウム 2020(CSS 2020)が開催され、そこで、Rust言語を用いてファームウェア、OS、言語処理系を設計・実装した話を発表しました。本来、CSS 2020はリアルで開催されるはずでしたが、コロナ禍の影響でオンライン開催となり発表動画作成が求められました。せっかく作った動画をこのまま捨て置くのももったいないと思い、ここで供養したいと思います。 www.youtube.com 概要 内容は、Rust言語を用いて、AArch64のセキュアワールド内で動作するファームウェア、OS、プログラミング言語処理系を実装した話となります。と言っても、まだまだ基本的な部分しか実装しておらず、実現目標に対して2〜3割と言ったところですが、どうぞご笑覧ください。 ブート部分は多少アセンブリ言語を使っていますが、その他の部分はRustで

          Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
        • シェルスクリプトでLISP処理系を作ってみた

          【2022-01-22追記】簡易版のLISP処理系をPOSIX準拠シェル(+sed)で作成する様子の動画を作成してみました. この記事は,筆者がシェルスクリプトで簡易実装している純LISP処理系の開発についてまとめたものです.『PureLISP.sh』と呼んでおり,次のGitHubリポジトリでパブリックドメインとして開発・公開しています. 基本的には,上記リポジトリのREADMEの内容を記事として膨らませたような構成です.このことから,今回の記事内容に関するコメント等だけでなく,『PureLISP.sh』そのものへの御意見等(GitHubのIssues/Forkを含む)も受け付けます.ただし,開発の経緯・目的から,次の3点は維持します. 最低限必要な要素で構成されたLISP処理系を志向すること POSIX準拠のシェルスクリプトで実装すること パブリックドメインにて開発・公開すること なお,

            シェルスクリプトでLISP処理系を作ってみた
          • PPLサマースクール2021 「JavaScript処理系とChromeブラウザの実装技術」 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)

            ニュース † Web ページを公開しました (6/29) 無事終了しました。講演資料へのリンクを追記しました (9/1) ↑ 概要 † JavaScript は世界でもっとも利用されている重要なプログラミング言語の一つであり、ウェブブラウザで利用可能なほぼ唯一のプログラミング言語という特徴から、ウェブアプリケーション開発で広く利用されています。 この重要性から、JavaScript処理系の性能改善に関する研究開発が活発に行われてきました。JavaScriptの性能改善は、動的な言語ながらの困難さも知られています。今年のサマースクールでは、鵜川さん(東京大学)にJavaScriptの実装技術について、その困難さをどう克服するか、基本的なところからご紹介いただきます。 JavaScriptを動作させるソフトウェアとして、Google が開発を主導するV8処理系、およびそれを利用するGoogle

            • 2020年における各Python処理系の状況 - Qiita

              2020年1月1日をもってPython2系列のサポートが終了しました(一部の長期サポート環境を除く)。Pythonは完全にPython3時代に移行し、安定期を迎えているように思います。しかしながら、Pythonは何もCPythonだけではありません。JythonやIronPythonといった他の処理系の現状はいったいどうなっているのでしょうか。気になったので少しだけ調べてみました。 CPython 公式サイト リポジトリ 言わずと知れた、オリジナルにして最も有名なPython処理系です。C言語で実装されています。 2020年1月1日にPython2系列のサポート終了(EOL)を行いました。 2020年7月21日には最新バージョンの3.8.5が公開されました。その他3.7系列では3.7.8が、3.6系列では3.6.11がそれぞれ6月28日にリリースされています。 そして、次期バージョンの3.

                2020年における各Python処理系の状況 - Qiita
              • Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」

                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。monochrome氏は、Ruby処理系「monoruby」について発表しました。 高速な実行が可能なRuby処理系「monoruby」 monochrome氏(以下、monochrome):monochromeといいます。今日は「機械語で書くRuby処理系のその後」ということで、前回の発表のその後を報告いたします。 自己紹介です。monochromeといいます。(スライドを示して)Twitterはこれです。最近、Twitterは治安が悪いので、Mastodonにアカウントを作りました。RustでRubyの処理系を作っています。プログラミング処理系、言語処理系が好きな人の集まりのSlackとか、最近はこの「Zulip」というアプリに移動して、こ

                  Rustとアセンブリで実装された新たなRuby処理系 JITコンパイルをサポートして速く動く「monoruby」
                • 機械語手書きから言語処理系をブートストラップする - Qiita

                  この記事は言語実装のカレンダー | Advent Calendar 2021 - Qiita https://qiita.com/advent-calendar/2021/lang_dev の4日目の記事です。 はじめに 昔、アセンブリ言語のみから出発し、GC・継続・オブジェクトシステムなどを持つ比較的高級な言語までブートストラップするということをやりました。いつか再挑戦してみたいと思っていて、正月休みにやりましたら思いのほか動くものになりましたが、死蔵させたまま1年経ってしまいました。勿体無いのでこの機会に紹介して供養します。 前回作ったAmberという処理系はこちら - リポジトリ: https://github.com/nineties/amber 今回はアセンブリ言語じゃなく ELFファイルの手書き から出発してみたいと思います。ただのお遊びで、そんなことしても役には立ちません。が

                    機械語手書きから言語処理系をブートストラップする - Qiita
                  • AIと一緒に新しい言語処理系を作ってみた|shi3z

                    Claude-3 Sonnetがだいぶ良いので、前々から考えていた、「Lispっぽい記法で書けるけど他の言語に慣れた人にも使える言語」の処理系を作ってみた。仮にEasyLispという名前にした。 この言語ではこんな感じでプログラムが書ける (define person (object)) (set! person.name "Alice") (set! person.age 30) (print person.name)personというオブジェクトのプロパティをnameやageがあって、これをドット記法で指定するとpersonオブジェクトのプロパティにアクセスできる。 同じことをCommon-Lispでやろうとするとこうなる (defun example () (let ((person (make-object :name "Alice" :age 30))) (format t "N

                      AIと一緒に新しい言語処理系を作ってみた|shi3z
                    • Language Server Protocol に対応したミニ言語処理系を作る

                      自作プログラミング言語でコード補完やタグジャンプをしたり、ソースコードに色をつけたりする。

                        Language Server Protocol に対応したミニ言語処理系を作る
                      • Big Sky :: Go言語で Lisp 処理系を作った。

                        1週間ほど前の深夜、ふと Go で連結リスト構造を書いていたら次第に car/cdr 形式になってしまい、気付いたら手が滑って Lisp 処理系を作り始めてしまいました。 なぜかこんな時間から突然 lisp を書き始めてしまった。 — mattn (@mattn_jp) March 26, 2020 初日は深夜だったのでパーサを書いた所で終了。次の日の夕方には四則演算と FizzBuzz が動きました。実は Lisp 処理系を書くのは人生でたぶん4回目くらいで、前回はC言語で書きました。 GitHub - mattn/cisp: Minimal Lisp Interpreter https://github.com/mattn/cisp 今回のルールとして「過去の自分の実装や他の実装は見ない」というオレオレルールを作ってしまったので幾分時間が掛かってしまった様に思います。テストコードはさす

                          Big Sky :: Go言語で Lisp 処理系を作った。
                        • 自作パケット処理系の性能測定と可視化&改善のPDCAを回して最強のパケット処理系の作り方を学ぼう / Let's Measure the Performance of Packet Processing System with Python Tools.

                          Pycon APAC 2023で登壇した時の資料です。 https://pretalx.com/pyconapac2023/talk/G3LDSG/ https://2023-apac.pycon.jp/timetable?id=G3LDSG

                            自作パケット処理系の性能測定と可視化&改善のPDCAを回して最強のパケット処理系の作り方を学ぼう / Let's Measure the Performance of Packet Processing System with Python Tools.
                          • JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita

                            CRuby(3.2.0-preview3)およびCRubyの新しいJITコンパイラ・モジュールであるYJITを有効にした場合と、monoruby(JITあり・なし)の単位時間当たりの実行回数をbenchmark-driver.gem を用いて比較しています。数字が大きい方が速いです。ベンチマークの種類によりますが、YJITと比較しても高速、特に浮動小数点演算を多数実行するso_mandelbrotやso_nbody、app_aobenchでは数倍高速となっています。インタプリタもCRuby(JITなし)と遜色ない速度になっています。 以下、設計と実装について紹介していきますが、その前に必要な基礎知識をおさらいしておきます。 基礎知識 JITコンパイラは実行時に対象言語のプログラムを機械語へコンパイルするモジュールですが、一般的な実装ではインタプリタと並存して動きます。プログラムは抽象構文木

                              JITコンパイルをサポートした新たなRuby処理系をRustとアセンブリで書いている話 - Qiita
                            • 継続を扱えるLispの簡易的な処理系をRubyで実装 - Qiita

                              プログラミング言語の処理系を実装してみたく思い、LispのようなS式を実行する簡易的な処理系を書いてみました。 「第一級の継続(call/cc)を実装する」というのが一番の目標でした。 ひとまずは動くものができた(と思う)ので、実装するにあたって考えたこと、試したことなどを書き残しておこうと思います。 ソースコードはこちらにあります。 言語を軽く説明 Rubyで実装したS式の簡単な処理系です。 VM(バーチャルマシン)実行方式を採用しました。ソースコードを独自のバイトコードに変換して、それを独自のVMで実行します 扱える値は整数と文字列くらいです。組み込みの関数名などは若干Rubyに寄せています。if、while、変数などは実装してあって、こんなコードが動きます。 (= a 5) (= sum 0) (while (!= a 0) (= sum (+ sum a)) (= a (- a 1

                                継続を扱えるLispの簡易的な処理系をRubyで実装 - Qiita
                              • 処理系フレンドリーコードによる「フロントエンド」のコードベース改善のアプローチ — HACK The Nikkei

                                この記事はNikkei Advent Calendar 2023の 20 日目の記事です. こんにちは. 林仁(Shinyaigeek)と申します. 2022 年に日本経済新聞社に新卒入社して, 今ですと日経電子版 Web 開発チーム全体の開発生産性などの向上のため, フロントエンド基盤の足回りの改善や電子版全体の信頼性向上のために CDN の改善などを担当しています. 本稿では処理系フレンドリーなコードとそのためのガードレールを敷くことによりコードベースを改善するアプローチと, 実際に日経電子版 Web の開発基盤である, k2 で行われた処理系フレンドリーなコードによってフロントエンドのコードベースを改善した事例についてご紹介します. フロントエンド開発における処理系 まずそもそも, ここで言う処理系とは何を指しているのでしょうか?本稿ではフロントエンド開発におけるコードの処理系をスコ

                                  処理系フレンドリーコードによる「フロントエンド」のコードベース改善のアプローチ — HACK The Nikkei
                                • 【Ruby1.8以前から】Rubyの処理系とJIT【Ruby3.2のYJITまで】 - Qiita

                                  はじめに Ruby3.2 で YJIT がついに実用段階になりました! なので YJIT について理解するために、JIT 導入前の Ruby、MJIT、そして YJIT についてそれぞれどんな特徴があるのか簡単に調べてみました。 Rubyの処理系 最初に Ruby の処理系についてです。処理系、特に 言語処理系 と呼ばれるものは、何らかのプログラミング言語を処理して実行可能にするためのソフトウェアです。Rubyの代表的な処理系は MRI (Matz's Ruby Interpreter) です。C言語で書かれた Ruby なので CRuby とも呼ばれます。 MRI 以外にも Ruby 処理系はたくさんあります。Ruby Association の以下のページに様々な処理系が紹介されています。 本記事では MRI (CRuby) の簡単なしくみから YJIT までを簡単に紹介します。 JI

                                    【Ruby1.8以前から】Rubyの処理系とJIT【Ruby3.2のYJITまで】 - Qiita
                                  • 数理・計算科学特論B プログラミング言語処理系の最先端実装技術 第6講 inliningとdevirtualization

                                    2. 自己紹介 ▪ プログラミング言語処理系の最先端実装技術 inliningとdevirtualization / Kazuaki Ishizaki 2 石崎 一明(いしざき かずあき) http://ibm.biz/ishizaki 1992年3月 早稲田大学理工学研究科修士課程電気工学専攻を修了。 1992年4月 日本アイ・ビー・エム(株)入社、東京基礎研究所勤務。以来、並列化コンパイラ、動的コン パイラ、アプリケーション最適化、などの研究に従事。最近は、AIプロセッサのソフトウェ アスタックの研究開発に従事。現在、同研究所シニア・テクニカル・スタッフ・メンバー 2002年12月 早稲田大学理工学研究科にて、博士(情報科学)を取得。 2008年から2009年まで、IBMワトソン研究所に滞在。 2004年に情報処理学会業績賞受賞。ACM Distinguished Member、情報処

                                      数理・計算科学特論B プログラミング言語処理系の最先端実装技術 第6講 inliningとdevirtualization
                                    • 週刊Railsウォッチ(20210209後編)Rubyでミニ言語処理系を作る、Kernel#getsの意外な機能、CSSのcontent-visibilityほか|TechRacho by BPS株式会社

                                      週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsの最新情報などの記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 Rubyでミニ言語処理系を作る 元記事: RubyでオレオレVMとアセンブラとコード生成器を2週間で作ってライフゲームを動かした話 -

                                        週刊Railsウォッチ(20210209後編)Rubyでミニ言語処理系を作る、Kernel#getsの意外な機能、CSSのcontent-visibilityほか|TechRacho by BPS株式会社
                                      • usagimaru ⌘ on Twitter: "日本人が想像するよりかなり広い範囲で日本語文字が中華フォント化している現象。CJK処理系における日本語の扱いに対する問題としてそろそろ何とかしていかないと、ソフトウェアの中の日本語が死んでいく危機感がある。そもそもなんでChine… https://t.co/c0smuwwwrG"

                                        日本人が想像するよりかなり広い範囲で日本語文字が中華フォント化している現象。CJK処理系における日本語の扱いに対する問題としてそろそろ何とかしていかないと、ソフトウェアの中の日本語が死んでいく危機感がある。そもそもなんでChine… https://t.co/c0smuwwwrG

                                          usagimaru ⌘ on Twitter: "日本人が想像するよりかなり広い範囲で日本語文字が中華フォント化している現象。CJK処理系における日本語の扱いに対する問題としてそろそろ何とかしていかないと、ソフトウェアの中の日本語が死んでいく危機感がある。そもそもなんでChine… https://t.co/c0smuwwwrG"
                                        • Apache Beamが多言語・多バックエンド処理系を実現する仕組み

                                          ストリーム処理とバッチ処理を統合して扱えるプログラミングモデル(あるいはデータ処理のフロントエンド)である Apache Beam が、特にGoogle Cloud DataflowやApache Flinkからの利用を背景にシェアを伸ばしています。 Apache Beamの特色として、複数のプログラミング言語のSDKを持つこと・複数のバックエンド処理系(Flinkなどを指す)を持つことが挙げられますが、これがどう実現されているのかをまとめます。 目次 前提知識: Beam入門 Exampleコードからざっくり理解 Beamのプログラミング体験 Beamのコードを見てみる Beamにおけるパイプライン実行 Beamのプログラミングモデルをちゃんと理解 前提知識: Beamでは複数種類のバックエンドが使える 前提知識: Beamプログラムは多言語で記述できる 多言語・他バックエンド対応の課題

                                          • プログラミング言語処理系が好きな人の集まり

                                            ようこそ プログラミング言語処理系が好きな人の集まりは、言語処理系に関する話題ならなんでもありな Zulip コミュニティです。 参加したい方へ まずは覗いてみよう Zulip のリンクから中を覗けます。 メンバーとして参加される際はZulip の招待リンクから登録してください。 次は自己紹介 #general で自己紹介をすると良いです。 参加した目的を簡単にまとめれば、他の人がぴったりのストリームを紹介してくれるかもしれません。 ストリーム紹介 #general のほか、#雑談 #質問 #言語 #進捗 #meetup などのストリームがあります。 Scrapbox 情報をまとめるために Scrapbox を開設しました。 定期ミートアップ 有志による定期ミートアップを2週に1回程度開催しています。詳細はこちら 日程や参加の方法などは Zulip の#meetup で告知しています。 過

                                            • 2024年のCommon Lispの処理系はこれだ!

                                              もともとQiitaで書いていた記事ですが、Qiitaを退会したところすべて消えてしまいました。 あのまとめどこいったの?と訊ねられるので、Zennで復活 SBCL (これがおすすめだ!) 2024年もSBCLが充実の一年ではないでしょうか(2015年から変化なし) 大体月に一度リリースしていますが、途切れることもなく安定しています。 以前(2010年)Quicklispでアンケートを取りましたが、Quicklisp利用者の8割以上はSBCL利用者のようです。 2024年も大勢に変化はないように思いますが、以前よりSBCL以外の処理系の開発の勢いが弱くなっているようなところもあるので、さらにシェアを伸ばしているかもしれません。 http://xach.livejournal.com/271794.html その他の処理系 CLISP (Lisp入門者にはこれがお勧め) この10年位開発が停滞

                                                2024年のCommon Lispの処理系はこれだ!
                                              • 並列プログラミング処理系Pelemayの
ARMアーキテクチャと
IoTプラットフォームNervesへの適用

                                                近年ではIoTでエッジ/フォグ・コンピューティングを行う事例が増えてきており,IoTにも計算パワーが求められるようになってきている.そこで,近年,アメリカを中心に注目を集めている開発プラットフォームNervesと,我々が研究開発を進めている並列処理ネイティブコード生成系である Pelemay Super…

                                                  並列プログラミング処理系Pelemayの
ARMアーキテクチャと
IoTプラットフォームNervesへの適用
                                                • LispKit Lisp処理系の実装 序 - Arantium Maestum

                                                  純粋関数型Lisp方言であるLispKit LispのインタプリタとSECD抽象機械の機械語へのコンパイラを作成する。 タネ本はHendersonの「Functional Programming - Application & Interpretation」で、この本に載っているISWIMやPASCALのコードを大体なぞるようにPythonで書いていく。(最近出た「コンパイラー原理と構造ー」でもSECDマシンへのコンパイルの話題が出ているらしいがまだ届いていないので未確認・・・) 例によって長くなるので複数の記事に分ける。 流れとしては以下のようになる: LispKit Lispの紹介 (本記事) パーサとAST インタプリタ 前編 後編 SECD抽象機械の実装 1 2 3 SECD機械語へのコンパイラ SECD抽象機械ガベージコレクション LispKit Lisp LispKit Lis

                                                    LispKit Lisp処理系の実装 序 - Arantium Maestum
                                                  • Ruby処理系自作入門 - Qiita

                                                    はじめに この記事はRuby Advent Calendar 2020 22日目の記事です。遅刻して申し訳ありません。 Rustという言語でrurubyというRuby処理系の独自実装を作っており、今回はその紹介をします。RustでRubyということでrurubyという安直なネーミングにしましたが、発音しずらい上に本家Rubyと紛らわしく恐れ多いので後悔しております。もう少し技術的なポエムを言語実装Advent Calendar 2020に書きましたので、興味のある方はそちらもご参照頂ければ。 Rustについて Rustは比較的新しいプログラミング言語で、C言語と同様の静的型付け言語です。最新の研究成果を取り入れた柔軟で堅固な型システムと型推論機構を持ち、高速かつメモリ安全・スレッド安全な言語となっています。また、高度な抽象化機能を実行速度を犠牲にしないやり方でうまく取り入れていて、言語処理

                                                      Ruby処理系自作入門 - Qiita
                                                    • RubyKaigi のセッションを楽しむための予習会をした - Ruby 処理系の基礎知識編

                                                      Leaner 開発チームの黒曜(@kokuyouwind)です。 明後日には RubyKaigi 2023 が始まりますね!自分は LT を採択してもらえて 2 番手で話すので、ぜひ聴きに来てください! 前回記事 で紹介したとおり、弊社には今回始めて RubyKaigi に参加するメンバーも数名いるため、社内で RubyKaigi の予習会を行いました。 今回はこのときに話した内容のうち、「Ruby 処理系の基礎知識」の部分を記事にまとめます。 Ruby 処理系の種類 Ruby のソースコードを実行するには Ruby 処理系を利用します。Ruby 処理系にはいくつかの種類があり、それぞれに開発が行われています。 以下に、 RubyKaigi で触れられることの多い処理系をいくつか紹介します。 MRI(CRuby) MRI(CRuby とも呼ばれる)は、 C 言語で実装された、公式の Rub

                                                        RubyKaigi のセッションを楽しむための予習会をした - Ruby 処理系の基礎知識編
                                                      • バッチ処理系の刷新とArgo Workflow移行

                                                        これはPTAアドベントカレンダーの7日目の記事です。 5年間運用されてきたバッチ処理系を刷新し、Argo Workflowを用いたバッチ処理系に移行したのでその紹介記事です。 背景 GKE上でバッチ処理のワークロードを実行しており、ワークフローエンジンとしてDigdagを採用していました。ユースケースとしては定期実行のバッチ処理、ETL、機械学習等。 Digdagを用いたワークフロー定義はシンプルかつ運用に必要な機能を提供してくれています。実際のワークフロー内部の処理としては、ワークフローの各タスクにおいては基本的にはロジックは持たずKubernetes Jobの実行のみを行います。そのためにDigdagとKubernetes Job間で協調動作するための仕組みが独自で用意されていました。このようなバッチ処理系が約5年程運用されてきました。 この仕組で今まで元気に動いてはいたのですが次のよ

                                                          バッチ処理系の刷新とArgo Workflow移行
                                                        • Rubyアソシエーション、Ruby処理系の改善や開発支援ツールなどをテーマにしたプロジェクトを公募、採択されると助成金50万円を支給

                                                          Rubyアソシエーション、Ruby処理系の改善や開発支援ツールなどをテーマにしたプロジェクトを公募、採択されると助成金50万円を支給 プログラミング言語Rubyの普及と発展のための非営利団体であるRubyアソシエーションは、Rubyの処理系やライブラリなどを改善する開発プロジェクトに助成金を提供する「Rubyアソシエーション 開発助成金2024」の公募開始を発表しました。 開発助成金2024の公募を開始しましたhttps://t.co/YTiMYbW9Gn — Ruby Association (@rubyassociation) August 21, 2024 募集する開発テーマは以下のように設定されており、任意の個人や団体が応募できます。 Ruby処理系の改善(高速化、省メモリ化等) 科学技術計算分野におけるライブラリ等 Ruby開発支援ツール(デバッガ、プロファイラ、静的コード解析ツ

                                                            Rubyアソシエーション、Ruby処理系の改善や開発支援ツールなどをテーマにしたプロジェクトを公募、採択されると助成金50万円を支給
                                                          • Python処理系入門 〜1 + 1 で学ぶ処理系解読の基礎〜 - yigarashiのブログ

                                                            この記事は CAMPHOR- Advent Calendar 2018 4日目の記事です. 1. はじめに プログラミング言語 Python は汎用の動的型付き言語で,機械学習や Web 開発を中心に幅広く使われています.特にここ数年の Python 人気は凄まじいものがあり,某大学生協の本屋では,プログラミング系の平積みコーナーが一面Python 関連書籍で埋め尽くされています.所属しているコミュニティの関係でプログラミング初心者の学生にもよく会うのですが,第一言語が Python という方が非常に多く,まさに猫も杓子も Python といった状況です. そんなわけで,人々がこぞって Python でプログラムを書いているわけですが,「Python 自体がプログラムである」という事実に目を向けたことのある人は非常に少ないと思います.みなさんが Python のプログラムを書いて実行する時

                                                              Python処理系入門 〜1 + 1 で学ぶ処理系解読の基礎〜 - yigarashiのブログ
                                                            • Language Client を作る|Language Server Protocol に対応したミニ言語処理系を作る

                                                                Language Client を作る|Language Server Protocol に対応したミニ言語処理系を作る
                                                              • プログラミング言語処理系の作り方 (競プロer向け) - うさぎ小屋

                                                                TL;DR プログラミング言語処理系は競プロerならパソコン知識がなくてもやるだけで作れる (ただし面倒ではある) はじめに 最近、競プロ界隈で言語処理系の製作が流行っている気がします。 LayCurse さんの cLay は古くからありますが、最近新しく niuez さんの Niu や colun さんの mmlang などが登場しました。 私も Jikka という処理系を作っています。 他にも、まだ未公開のようですが、言語処理系を作っているらしき人を何人か見かけています。 しかし「処理系はどのようにすれば作れるか」や「処理系はどの部分がどのくらい難しいのか」についてはほとんど知られていないように見えます。 たとえば、純粋培養の競プロerにとっては「web アプリを作る」よりも「言語処理系を作る」ことの方がはるかに簡単だと私は思っているのですが、そのように理解している競プロerは少ないよ

                                                                • RubyによるBrainf**k処理系を1行で! - Qiita

                                                                  概要 Rubyで一行で書くという縛りで、Brainf**kの処理系を書いてみました! n番煎じの極みのような気がしないでもないですが、まあゆるしてちょ。 もっと改善できる余地があるかもしれないですが、もう見たくないです。 ※ 作業環境のRubyのバージョンは以下のとおりです。 Ruby入ってなかったので、とりあえずその時の最新版入れました。 require('io/console');require('optparse');->o,s:((o['s'].nil?)?((!o['f'].nil?)?(File.read(o['f'])):gets(nil)):o['s']),step:o['step']{->t:'><+-.,[]'.split('').zip([*1..8]).to_h,b:(s.split(/\R/).join.split('').each_with_index.redu

                                                                    RubyによるBrainf**k処理系を1行で! - Qiita
                                                                  • 言語処理系コミュニティーでの協働の在り方 | 雑記帳

                                                                    プログラミング言語処理系が好きな人の集まりというコミュニティーがあります。ここは言語処理系を作っている人が多く集まっています。自作言語界隈とも言えます。そこでの話題について、色々と思うところがあったので、記事を書いてみます。 まず、「オレオレ言語界隈も標準化委員会を作って統一した言語を作ってみてはどうですかね?」という意見について。 https://prog-lang-sys-ja.zulipchat.com/#narrow/stream/343500-.E9.9B.91.E8.AB.87/topic/.E3.82.AA.E3.83.AC.E3.82.AA.E3.83.AC.E8.A8.80.E8.AA.9E.E3.81.AE.E6.A8.99.E6.BA.96.E5.8C.96/near/329319086 私としては統一言語はいい考えとは思えません。独自の言語を作る人は、学習用のものを

                                                                    • Goで簡素な Lisp処理系を書いた - Shohei Yoshida's Diary

                                                                      github.com 最近 Goに触れていなかったので復習も兼ねて. 内容としては下記の本に載っている Common Lisp風の簡易 Lisp. 本では Common Lispで書いているので read周りとか楽にできる部分があるのだけれど, Lisp系言語以外だとそんなわけにはいかないのでそこは地道に書いた. あとオブジェクト指向というかクラス継承を使って書かれていた部分を Goっぽく(?)落とし込んで書いた. その他の方針などはだいたい本のまま. 以前もっと簡単なものを Cで書いたことはあったけど, それよりは幾分進んだ内容で適度にいい刺激にはなったかと思いました. 対話によるCommon Lisp入門 作者:栗原 正仁メディア: 単行本

                                                                        Goで簡素な Lisp処理系を書いた - Shohei Yoshida's Diary
                                                                      • 機械語で書くRuby処理系

                                                                        機械語で書くRuby処理系 monochrome Kernel / VM 探検隊 online part5 2022/8/28

                                                                          機械語で書くRuby処理系
                                                                        • 画像処理系だと特徴マッチングのSIFTアルゴリズムは特許のせいでようやく最..

                                                                          画像処理系だと特徴マッチングのSIFTアルゴリズムは特許のせいでようやく最近公開になってそれまでオープンソースのライブラリにすら入ってなかったんだよね。まあ類似アルゴリズムあったけどあれコードの中身見れないから研究の妨げだよなあと思った

                                                                            画像処理系だと特徴マッチングのSIFTアルゴリズムは特許のせいでようやく最..
                                                                          • はじめに|Language Server Protocol に対応したミニ言語処理系を作る

                                                                              はじめに|Language Server Protocol に対応したミニ言語処理系を作る
                                                                            • wasm GC Proposalのために作られた実験的な関数型言語処理系Wamlが面白そう - Arantium Maestum

                                                                              自分で実装している型システムに再帰型をつけたくてiso-recursive typesで検索していたらwasm garbage collectorのGitHubレポジトリで行われている侃侃諤諤な議論を見つけて読み漁っていた。 その中で見つけたのがwasmの中心的な人物であるAndreas RossbergがwasmのGC proposalを試すために書いた実験的なコンパイラWaml: github.com Rossbergはwasmのreference interpreterを実装したりしている。ML界隈ではF-ing Modulesや1MLなどのモジュール関連の研究やstandardにできるだけ忠実なSMLのレファレンス実装HaMLetなどで有名。 このWamlはwasmのGC proposalがちゃんとした言語処理系のコンパイル先として必要な機能を備えているか評価するために、できるだけ

                                                                                wasm GC Proposalのために作られた実験的な関数型言語処理系Wamlが面白そう - Arantium Maestum
                                                                              • 処理系Slackのミートアップに参加しました - yhara.jp

                                                                                処理系Slackで定期ミートアップをやろうという話になったので、せっかくだからShiikaについて相談したいことを話してみた。以下は発表資料。 Shiikaとは 雑に書ける静的型付け言語がほしい 既存の静的言語は「性能」とか「ローレベル」にチューニングされているが、それらを捨ててLL的な方向に振る Ruby的な書きやすさ+静的型チェック 動的言語の楽しさとは別に、型からデザインする楽しさというのがある 最近やったこと 定数の相対参照を実装した Shiikaの定数の特殊な点 Rubyの「クラスもオブジェクト」をやりたい p String #=> #<class String> p String.name #=> "String" p String.class #=> #<class Meta:String>

                                                                                • 式指向構文が言語処理系にもたらす複雑性

                                                                                  以降、サンプルコードは Rust 風の構文で書く。ただし型システムや処理系は Rust とは限らない。 ジャンプとスタックマシンの相性の悪さ 式指向の構文を持つ場合、式の評価の途中でジャンプすることができる。 この関数をスタックマシンのコードにナイーブにコンパイルすると、次のような不正な振る舞いをする。 1 をスタックに積む 2 をスタックに積む return する。スタックから返り値 2 を pop して、関数から抜ける スタックから2つの値を pop して足し、和をスタックに積む (← ジャンプしたのでこれは実行されない) ここで 1 はスタックに置かれたままであり、関数の実行の前後でスタックの深さが維持されない。 解決策 この問題を解決するには、レジスタマシンを使うか、ジャンプする際に不要になった値をスタックから pop するようなコードを生成すればいい。 (追記: 正準化(cano

                                                                                  1