並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 60件

新着順 人気順

ASTの検索結果1 - 40 件 / 60件

  • ast-grep VSCode: 構造検索と置換の強力なツール

    こんにちは、 ast-grepの作者Herringtonです。 正規表現でコードを検索したことがある方なら、複数行のマッチングや入れ子構造の処理、コメントの無視などに苦労したことがあるかもしれません。 そこで、ast-grep VSCodeという新しい拡張を紹介します。これは、構造的検索と置換(SSR)という技術を利用して、より正確で効率的な検索と置換を実現するツールです。 構造検索は? テキスト検索と置換の限界 例えば、JavaScriptコードをリファクタリングして、lodash の _.filter 関数をネイティブの Array.prototype.filter メソッド に置き換えたいとします。単純なテキスト検索と置換は次のようになります: これは一部のケースではうまくいくかもしれませんが、いくつかの問題があります。 一行の式しかマッチングできません。コードが複数行にまたがってい

      ast-grep VSCode: 構造検索と置換の強力なツール
    • Generate React Component with TypeScript AST

      理解して導入するWebフレームワーク ~解決すべき課題に着目する~ / Understanding and implementing web frameworks ~focusing on the problems to be solved~

        Generate React Component with TypeScript AST
      • たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita

        はじめに この記事は2020年のRevCommアドベントカレンダー20日目の記事です。 19日目は@metal-presidentさんの「モバイルチームの成長とKMM導入に向けて」でした。 11月に株式会社RevCommに入社した@rhoboroです。 前職では主にGCP x Pythonで、現職では主にAWS x Pythonで日々業務を行なっています。 RevCommでは広島県の尾道からフルリモートワークで働いているので、そういった働き方にもし興味があればこちらの記事もご覧ください。 それでは、本題に入ります。 PythonのAST(抽象構文木)とは? この記事は、PythonのAST(抽象構文木、Astract Syntax Tree)に触れたことのない方を対象にしたASTの入門記事です。 そもそもASTとは何なのか、ASTを理解すると何ができるのかを中心に紹介していきます。 さっそ

          たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita
        • Rust AST 入門

          これは、簡単な Rust の AST をざっと読めるようになる、もしくは該当のドキュメントを読めるようになる、といったことを目的としたものである。入門といっても網羅的なものではなく、雰囲気を掴んでほしいという意味合いで書いたものであって細かいところまでは説明しないつもりである。なお Rust には型などより多くの情報も含む HIR などいくつかの AST があるが、ここではコンパイル時に最初に作られる AST についてのみふれる。 プログラミング言語で一般的に述べられる AST 自体についてはここでは説明しないので他を参照するとよい。有用そうなもののリンクは以下の通りである。 ASTs - What are they and how to use them Crafting Interpreters また、AST を確認するというと AST explorer も有用だが、 AST expl

            Rust AST 入門
          • JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話

            JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話 Dive into ASTというJavaScriptのASTを使ったツールの作り方を見ていく話を書きました。 自作の正規表現、ASTチェックツール、ESLint、Babel、jscodeshiftでそれぞれ動くツールを実装してるので、リポジトリにまとめてあります。 スライドではCode Surferを使ってASTや書き方をインタラクティブに解説しています。 スライド: Dive into AST リポジトリ: azu/dive-into-ast: JavaScriptを中心にしたAST(Abstract Syntax Tree)を使ったツールの作り方についての資料です! 自作ASTツール、ESLint、Babel、jscodeshift それぞれでASTを使ったツールをどう実装

              JavaScript ASTを使ったツール(自作、ESLint、Babel、jscodeshift)を実装する話
            • Dive into AST

              Dive into AST

              • GitHub - ast-grep/ast-grep: ⚡A CLI tool for code structural search, lint and rewriting. Written in Rust

                You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                  GitHub - ast-grep/ast-grep: ⚡A CLI tool for code structural search, lint and rewriting. Written in Rust
                • 大規模コードベース向けASTツールのast-grepについて

                  大規模なコードベース向けの高速なASTツールとしてast-grepというものがある。これについての調査メモ。 主に以下の公式ドキュメントを読み進めて、利用方法、パターンやルールの詳細などについて理解を深める。 ast-grepとは 公式ドキュメントでは、コードの検索からLint、codemodに至るまでASTツールとして網羅的にカバーできるツールであることが以下のように表現されている。 Think ast-grep as an hybrid of grep, eslint and codemod. 結果に精度が求められる場面では、高速であるものの精密さに欠けるテキストベースではなく、ASTベースでの正確な解析の方が望ましいだろうけど、ASTでの記述は非常に面倒になりがちという側面がある。 その点においてast-grepは、テキストベースでのgrepではなく、ASTベースでのgrepというよ

                    大規模コードベース向けASTツールのast-grepについて
                  • GitHub - buntis/buntis: A 100% compliant, self-hosted typescript parser that emits an ESTree-compatible AST

                    Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Sign up A 100% compliant, self-hosted typescript parser that emits an ESTree-compatible AST https://buntis.github.io/buntis/

                      GitHub - buntis/buntis: A 100% compliant, self-hosted typescript parser that emits an ESTree-compatible AST
                    • Let’s try to hack AST of JavaScript

                      Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything

                        Let’s try to hack AST of JavaScript
                      • AST vs. Bytecode: Interpreters in the Age of Meta-Compilation

                        233 AST vs. Bytecode: Interpreters in the Age of Meta-Compilation OCTAVE LAROSE, University of Kent, UK SOPHIE KALEBA, University of Kent, UK HUMPHREY BURCHELL, University of Kent, UK STEFAN MARR, University of Kent, UK Thanks to partial evaluation and meta-tracing, it became practical to build language implementations that reach state-of-the-art peak performance by implementing only an interprete

                        • 筋トレしたらASTとALTが爆上がりして肝臓機能値異常となった話。 | 休日ぶらぶら散歩

                          9月から肉体改造計画を行なっているガリガリです。 一度熱中すると割と真面目に取り組む性格なので増量とウエイトトレーニングをまあまあストイックに行いました。(ヒョロガリなりに) 体重を増やすためにドカ食いを繰り返し、プロテインもガブガブ飲んでいた。 今回の結論としては筋トレに加えて、ドカ食いとプロテインで肝臓に負荷がかかってたみたいです。 そんなこんなで9月から開始していましたが10月に行った健康診断で引っかかってしまいました。 血液検査で異常値があり、その項目は肝臓でした。 まさかの3桁!!すげえ…. 今回の体験談から得られたこと 筋トレでAST・ALT(GOT・GPT)は上がる要因となりうる。 筋トレとプロテインを1週間〜2週間休めば元の数値に戻った。(医師からは健康診断の最低でも前々日から完全に休止することを勧められた) あくまで一例ですのでその点はご注意を。個人の体質によります。食事

                            筋トレしたらASTとALTが爆上がりして肝臓機能値異常となった話。 | 休日ぶらぶら散歩
                          • AST を拡張しよう

                            はじめに 実験的な内容です。(@fumievalさん, @matsubara0507さん、アドバイスありがとうございました) モチベーション まずは、以下のような型 Expr と関数 pretty が定義されているとします。 data Expr = Constant Int | Add Expr Expr deriving (Eq, Show) pretty :: Expr -> String pretty (Constant i) = show i pretty (Add e1 e2) = pretty e1 <> " + " <> pretty e2

                            • Play with Rubys AST

                              数学の勉強のために Ruby の構文木と遊んでいる話 2020.02.11. 大江戸 Ruby 会議 08

                                Play with Rubys AST
                              • 楽天モバイルが手を組むAST社の衛星通信「SpaceMobile」、その実力は

                                  楽天モバイルが手を組むAST社の衛星通信「SpaceMobile」、その実力は
                                • AST + Prettierで快適にコードを一括変換しよう - suguru.dev

                                  概要 この記事はQiita Node.js Advent Calendar 2019 5日の記事です。 「Node.jsのプロジェクトにTypeScriptを導入したい」 ちょうど去年の12月に面接で聞かれたことでした。 あなたならどう答えますか? 今回は面接のネタとしても使える、ASTとPrettierを利用してコードを一括変換する方法を紹介します。 ASTとは AST(Abstract Syntax Tree)とは抽象構文木のことで、コードを抽象化しツリー構造にパースしたものです。 身近なところではTypeScript、Eslint、Prettierなどで使用されています。 コードの変換方法 コードを変換するアプローチは色々ありますが、ASTに出会う前はよく正規表現を利用してコードの変換をしていました。 正規表現による変換 例えば var を const に変換するくらいなら正規表現の

                                    AST + Prettierで快適にコードを一括変換しよう - suguru.dev
                                  • ast-grep | structural search/rewrite tool for many languages

                                    AST-GREPFind Code by Syntax ast-grep(sg) is a fast and polyglot tool for code structural search, lint, rewriting at large scale. Search and Rewriteast-grep is a code tool for structural search and replace. It is like syntax-aware grep/sed! You can write code patterns to locate and modify code, based on AST, in thousands of files, interactively. sg -p '$A && $A()' -r '$A?.()' Scan as Linterast-grep

                                    • TSKaigi 2024 TypeScript ASTを利用したコードジェネレーターの実装入門 | ドクセル

                                      スライド概要 TSKaigi 2024 11:30~12:00 トラック2 セッション https://tskaigi.org/talks/Himenon TypeScriptのAPIにはAbstract Syntax Tree(抽象構文木。以降ASTと省略)に関するAPIがあります。抽象構文木は静的解析やSyntax Highlight、Code Generatorなど普段我々が利用しているツールの内部で利用されています。 本発表では、TypeScriptのASTに入門しつつ、その応用であるコードの自動生成をどうやって実現していくか、OpenAPI Code Generatorのライブラリを4年間維持し続けている経験から紹介していきます。

                                        TSKaigi 2024 TypeScript ASTを利用したコードジェネレーターの実装入門 | ドクセル
                                      • 楽天モバイルと米AST、「衛星と市販スマホの直接通信」で音声通話に成功

                                          楽天モバイルと米AST、「衛星と市販スマホの直接通信」で音声通話に成功
                                        • AST で JavaScript のコードを変換する - 30歳からのプログラミング

                                          ソースコードを AST(抽象構文木)と呼ばれるデータ構造に変換することで、ソースコードの検証や変換をプログラムによって行えるようになる。 例えば ESLint では、ソースコードを AST に変換して、それに対してチェックを行っている。 また、V8 などの JavaScript エンジンも、対象の JavaScript ソースコードを AST に変換してから、後続の処理を行う。 AST を使えるようになると、ソースコードの検証や変換を行うツールを自作できるようになる。 この記事では、JavaScript AST を扱うための方法を見ていく。 この記事で使用しているライブラリのバージョンは以下の通り。 esprima@4.0.1 estraverse@5.2.0 escodegen@2.0.0 動作環境は Node.js のv12.17.0で行っている。 また、この記事に出てくる木構造の画像

                                            AST で JavaScript のコードを変換する - 30歳からのプログラミング
                                          • 世界初、人工衛星と市販スマホによる音声通話に成功 - ASTや楽天モバイルら

                                            米国の宇宙ベンチャー、ASTスペースモバイルと楽天モバイルなどは2023年4月25日、世界初となる、低軌道衛星を使った市販スマートフォン(スマホ)同士の直接通信による音声通話に成功したと発表した。 ASTは衛星を使った“宇宙に浮かぶ携帯基地局”によって、世界中に携帯通信をつなげることを目指しており、楽天モバイルなどが参画している。この成功によって、その実現に一歩近づいた。 スマートフォン同士の通信を中継した、通信衛星ブルーウォーカー3の想像図 (C) AST SpaceMobile ASTスペースモバイルらによる「スペースモバイル」構想 ASTスペースモバイル(AST SpaceMobile)は2017年に設立された米国のベンチャー企業で、巨大なアンテナをもった衛星を複数機打ち上げてコンステレーション(編隊)を組み、市販のスマートフォンとの直接通信を目指す「スペースモバイル(SpaceMo

                                              世界初、人工衛星と市販スマホによる音声通話に成功 - ASTや楽天モバイルら
                                            • 基準値内でもヤバい!ALT(GPT)がAST(GOT)の3倍なら肝硬変かも?母からの教え。健診の盲点 - 死体を愛する小娘社長の日記

                                              皆さん… 毎年、健康診断を受診すると思うけど、 健診の結果だけで一喜一憂するのは良くないね… 昨日の昼過ぎ 専務の作ってくれたお弁当を美味しく食べていると、総務局の配車AIから直葬発生の自動連絡…… 遺体はロリポップの搬送会社が、既に病院から自宅に搬送中で、私達は遺族宅へ向かう 遺族宅に着いて…… 死亡診断書を見ると、故人は50代のおじちゃん…肝不全で死んじまった。 それ程貧乏って感じではなかったけど、葬儀代が焦げ付いたらマズいので 控えめのリップサービスで小規模自宅葬への変更に成功したヾ(^^ ) 故人は未婚で両親(70代)と同居 長年無職だったけど、今年の3月にやっと派遣で働き始めたが… 6月の始めに帰宅途中、大量吐血…アルコール性の肝硬変… 様態が急変し肝不全で死んでしまったそうだ 「働く前にやった健康診断で、血圧が高いだけだったのに…」と健診結果を見せられた。 雇い入れ前の法定健康

                                                基準値内でもヤバい!ALT(GPT)がAST(GOT)の3倍なら肝硬変かも?母からの教え。健診の盲点 - 死体を愛する小娘社長の日記
                                              • ESTree 互換っぽい AST を出力する JavaScript のパーサーまとめ

                                                ESTree という JavaScript の AST の仕様がある。ESTree っぽいものを出力してくれるパーサーをまとめていく。 雑にまとめているので興味ある人とか詳しい人は適当に追記してもらって構いません。 @babel/parser Babel で使われているパーサー。最新の JavaScript だけでなく、まだ ECMAScript に入っていないプロポーザルや TypeScript、Flow もオプションで対応している。また、AST は ESTree と一部互換性がないものを出力するが、estree プラグインを使うことで、ESTree 互換の AST を出力させることもできる。 Prettier のデフォルトパーサー。@babel/eslint-parserを使うことで ESLint のパーサーとしても使うことができる。 @typescript-eslint/typesc

                                                  ESTree 互換っぽい AST を出力する JavaScript のパーサーまとめ
                                                • 祥太 on Twitter: "何が面白いかって、『メイプルタウン物語』(1986)OPに写研の石井太ゴシックで組まれた「△東  映」、現在放送中の『スター☆トゥインクルプリキュア』でも現役なんですよ。 現在プリキュアで唯一生き残ってる写研書体です。 https://t.co/8asT6KNoaK"

                                                  何が面白いかって、『メイプルタウン物語』(1986)OPに写研の石井太ゴシックで組まれた「△東  映」、現在放送中の『スター☆トゥインクルプリキュア』でも現役なんですよ。 現在プリキュアで唯一生き残ってる写研書体です。 https://t.co/8asT6KNoaK

                                                    祥太 on Twitter: "何が面白いかって、『メイプルタウン物語』(1986)OPに写研の石井太ゴシックで組まれた「△東  映」、現在放送中の『スター☆トゥインクルプリキュア』でも現役なんですよ。 現在プリキュアで唯一生き残ってる写研書体です。 https://t.co/8asT6KNoaK"
                                                  • GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub

                                                    この記事はfreee Developers Advent Calendar 2023の21日目の記事です。 こんにちは、金融開発部でEMをしている ogugu です。 今回は、Go言語において Feature Toggle の分岐を掃除するCLIを作ったので、ご紹介します。 ※ 毎年恒例の開発合宿 での成果になります。 Feature Toggle とは Feature Toggle とは、特定機能の有効・無効をフラグによって切り替える方法です。 金融開発部では、以下のように Feature Toggle を実現できるライブラリを用意しています。 if featflg.Enabled(ctx, "feature_name") { doNewLogic() } else { doOldLogic() } 一般に、フラグ設定は、設定ファイル・環境変数・ストレージなどから読み出し、それらに対する

                                                      GoのASTを解析してFeature Toggleを掃除する - freee Developers Hub
                                                    • ast-grepでReact 19に移行する

                                                      はじめに こんにちは、ast-grepの作者ヘリントンです。 Reactバージョン19のリリースに伴い、新機能と改善が追加されました。 しかし、この新バージョンへのアップグレードには、ソースコードの一部を修正する必要があります。特に大規模なコードベースでは、このプロセスはかなり手間がかかり、繰り返し行う必要があります。 本記事では、ast-grepというツールの使用方法を説明します。このツールは、コードベース内でパターンを見つけて置き換えることを目的として設計されており、React 19への移行を容易にします。 以下の3つの主要なcodemodsに焦点を当てます。 <Context>をプロバイダとして使用する 暗黙のrefコールバックリターンを削除する refをpropsとして使用し、forwardRefを削除する 前提条件: ast-grepのセットアップ まず、ast-grepをセット

                                                        ast-grepでReact 19に移行する
                                                      • Babel Plugin を作りながら AST と Babel を学ぶ - Qiita

                                                        この記事は JavaScript Advent Calendar 2019 の 23日目の記事です。 前日の22日目は Vue-CLI 4を使用したJavaScript開発環境構築(プロトタイプ版とプロジェクト版) でした。 今回は表題通りBabel Pluginを作りながらASTとBabelを学ぼうという記事です。 AST とは? まずは根幹であるASTについて軽く説明します。 ASTはAbstract Syntax Treeの略で、日本語では抽象構文木などと呼ばれるものです。 ASTはプログラムの構造を示したデータ構造体であり、JavaScriptではJSONデータの形で表現されることが一般的になり、基本的に仕様は、ESTree に準拠されています。 ASTはBabel以外に ES Lint や webpack などにも使用されています。 実際にASTがどのようなものなのかをAST e

                                                          Babel Plugin を作りながら AST と Babel を学ぶ - Qiita
                                                        • 楽天モバイル、衛星通信で全国エリア100%目指す――衛星通信の米ASTと業務資本提携

                                                            楽天モバイル、衛星通信で全国エリア100%目指す――衛星通信の米ASTと業務資本提携
                                                          • OpenAPI TypeScript Code GeneratorをASTを利用して作成しました | himenon.github.io

                                                            CHANGELOG 2021/01/13 12:00頃Playgroundを作りました。Remoteの$refは使えません。例3を追加しました。2021/02/06 19:00頃github/rest-api-descriptionのOpenAPI Schemaを改変せずにTypeScriptのコードを生成できるようになりました。例4に追加しました。2021/03/24 13:30頃既存のOpenAPI Schemaのうち利用するoperationIdのみを選択できるようにオプションを追加しました。同期的なAPI Clientを生成するためのフラグを追加しました。Google App Scriptなどの利用シーンで有用です。2022/03/21 16:00頃例4を修正。有名なシステムやライブラリのOpenAPIから生成したTypeScriptのサンプルコードのリポジトリを追加しました。「今

                                                              OpenAPI TypeScript Code GeneratorをASTを利用して作成しました | himenon.github.io
                                                            • ts-morphを使ってコードリプレイスとASTへのハードルを下げる!

                                                              TSKaigi2024で登壇したスライドです。 16:40 ~ 17:10 トラック2 LT

                                                                ts-morphを使ってコードリプレイスとASTへのハードルを下げる!
                                                              • Writing custom TypeScript ESLint rules: How I learned to love the AST

                                                                Writing custom TypeScript ESLint rules: How I learned to love the AST In this blog post, we’re going to learn how to write a custom ESLint plugin to help you with otherwise manual tasks that would take you days. The task? An eslint rule that adds generic to enzyme shallow calls, so we avoid type errors about our components during tests. Let’s dive into the world of ASTs: They’re not as scary as th

                                                                  Writing custom TypeScript ESLint rules: How I learned to love the AST
                                                                • 市販のスマートフォンでAST衛星経由の音声通話、楽天モバイルの三木谷氏がデモ公開

                                                                    市販のスマートフォンでAST衛星経由の音声通話、楽天モバイルの三木谷氏がデモ公開
                                                                  • 【Ruby Advent Calendar 2020】Ruby の AST から Ruby のソースコードを復元しよう【1日目】 - Secret Garden(Instrumental)

                                                                    Ruby Advent Calendar 2020 1日目の記事になります。 もう今年も Advent Calendar の時期ですね。 今年は 12/25日に Ruby 3.0 がリリースされるのでとても楽しみです。 並行して Ruby 3.0 Advent Calendar 2020 も開催しているので興味があるひとはぜひ参加してみてください! Ruby Advent Calendar 2020 もまだ空きはあるのでこっちも参加してね! さて、今年の Advent Calendar は Ruby の AST 周りについて書いてみようかと思います。 【Ruby Advent Calendar 2019】ピュア Ruby で Ruby 2.7 の Numbered parameter を実装してみよう!【1日目】 - Secret Garden(Instrumental) 【Ruby Ad

                                                                      【Ruby Advent Calendar 2020】Ruby の AST から Ruby のソースコードを復元しよう【1日目】 - Secret Garden(Instrumental)
                                                                    • 習うより慣れる Ruby AST / Ruby AST is better to get used to than to learn.

                                                                      omotesando.rb#94 で発表したスライドです。 https://omotesandorb.connpass.com/event/308359/ rubocop-ast.wasm https://rubocop-ast-wasm.vercel.app/

                                                                        習うより慣れる Ruby AST / Ruby AST is better to get used to than to learn.
                                                                      • Future of Ruby – AST Tooling

                                                                        This is a series meant to explore the potential future of the Ruby programming language by visiting current technologies and ideas around them, and how those might apply to the future. In this series you'll find some tools which can be used today, some which may be used tomorrow, and a collection of aspirations of what could be. As this is a look into a potential future, you may or may not see the

                                                                          Future of Ruby – AST Tooling
                                                                        • 楽天モバイルと米AST、衛星とスマホの直接通信に自信 競合他社にはない強みは?

                                                                          なお、具体的なサービス開始時期や提供(カバー)範囲は、法制度など両社が関われない事由を理由に変更される可能性があるという。 楽天モバイルとASTは同日、会見を共同開催。楽天モバイル代表取締役会長の三木谷浩史氏と、ASTでChairman兼CEOを務めるアーベル・アヴェラン氏が登壇し、2024年2月時点で分かっているモバイル通信の課題や、今後の計画について説明した。 アヴェラン氏はASTの創業者で、2017年の創業以来、会長兼CEOを務める人物。創業前は海事とその他のモビリティー市場に対して衛星を利用したコミュニケーションサービスを提供する、エマージング・マーケット・コミュニケーションズ(EMC)を2000年に起業。2016年7月に同社がおよそ5億5000ドルで売却されるまでCEOを務めた。 両社は、大型の低軌道衛星を活用し、日本全土をカバーするための通信サービスを提供する計画を進めている。

                                                                            楽天モバイルと米AST、衛星とスマホの直接通信に自信 競合他社にはない強みは?
                                                                          • KZ AST レビュー 片側12BAのさらにインフレしたイヤホン

                                                                            KZは過去にASXというBA過多なイヤホンを販売したものの、案外癖が強く初期ロットに不具合が多かったこともあり、なんとも残念な評価を受けていました。

                                                                              KZ AST レビュー 片側12BAのさらにインフレしたイヤホン
                                                                            • 楽天出資のAST SpaceMobileが試験衛星「BlueWalker 3」を打ち上げ

                                                                                楽天出資のAST SpaceMobileが試験衛星「BlueWalker 3」を打ち上げ
                                                                              • AST vs. Bytecode: Interpreters in the Age of Meta-Compilation [pdf] | Hacker News

                                                                                The authors implemented a stack-based virtual machine for their benchmarks, but as they briefly alluded a register-based virtual machine should perform better. With a register-based VM there is no excessive stack fiddling and fewer instructions to perform the same task. Consider the instructions for adding two integers and storing the result in a variable. In a stack machine this requires four ins

                                                                                • Which Interpreters are Faster, AST or Bytecode?

                                                                                  This post is a brief overview of our new study of abstract-syntax-tree and bytecode interpreters on top of RPython and the GraalVM metacompilation systems, which we are presenting next week at OOPSLA. Prelude: Why Did I Build a Language on Top of the Truffle and RPython Metacompilation Systems? Writing this post, I realized that I have been working on interpreters on top of metacompilation systems

                                                                                    Which Interpreters are Faster, AST or Bytecode?