タグ バイトコード
人気順 10 users 50 users 100 users 500 users 1000 users『Rustで作るプログラミング言語』を読んで、かねてから構想していた自作言語を形にした - Islands in the byte stream
Rustで作るプログラミング言語という書籍が先日発売されました。簡単なプログラミング言語を作ってバイトコードに変換して実行したりネイティブコードに変換して実行してみよう、という本で、大変面白く読みました。最終的にかなり本格的な言語になるので、これを元にするとわりとちゃんとした言語を作れそうです。 この... 続きを読む
なぜSQLiteはバイトコードを使うのか
以前にデータベースを自作しようとして、SQLiteのアーキテクチャを見てみたらVMだったことに疑問を感じ、それをツイートしたところ作者からリプをもらいました。 作者いわく、次のような背景があったとのことでした。 SQLiteを作った当初はデータベースエンジンのことをよく知らないがコンパイラのことをよく知っていた ... 続きを読む
WebAssemblyでOpenJDKのJavaランタイムを実装、JarファイルをそのままWebブラウザで実行できる「CheerpJ 3.0」正式リリース
WebAssemblyでOpenJDKのJavaランタイムを実装、JarファイルをそのままWebブラウザで実行できる「CheerpJ 3.0」正式リリース Webブラウザ上で実行可能なWebAssembly製JavaVM 前バージョンのCheerpJは、Javaのバイトコードを事前コンパイルによりJavaScriptコードに変換することで、Webブラウザ上でJavaアプリケーションを... 続きを読む
Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
初めに 本記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12... 続きを読む
JJUG CCC 2022 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く
JJUG CCC 2022 Spring に参加しました! いつも以上におもしろいセッション盛りだくさんで、参加してとても楽しかったです。 LINEのトラブルシューティングのような現場での経験をもとにした話から、バイトコードのようなJavaのコアな話まで、とてもバランスよくセッションが採択されていたからかなと思います。 特に前... 続きを読む
Kotlinのsuspend関数のバイトコードを読んでみた - ZOZO Technologies TECH BLOG
こんにちは。福岡研究所の岩本(@odiak_)です。 みなさん、Kotlinのコルーチンを使っていますか? 私は、最近久しぶりにAndroidのコードを触る機会があり(3年ぶりくらいでしょうか)、以前から存在は知っていたものの詳しく知らなかったコルーチンを少し使ってみました。まずドキュメントを読んでみたのですが、よくデ... 続きを読む
JITとコードの暖気の実体 - #chiroito ’s blog
どうも、OpenJDKのコミッタをしてます。 とあるブログを読んでいたら気になる点があったので検証してみました。 JITと暖気 Javaプロセスはアプリケーションを動かしながら必要に応じてバックグラウンドでバイトコードをネイティブコードにコンパイルします。このコンパイル時にはCPUリソースを使用します。 コンパイルに... 続きを読む
MozillaはWebAssemblyをブラウザー外でも使えるようIntel、Red Hat、Fastlyと協力 | TechCrunch Japan
Mozilla、Intel、Red Hat、Fastlyは米国時間11月12日、Bytecode Alliance(バイトコード・アライアンス)の発足を発表した。「WebAssemblyやWebAssembly System Interface(WASI)といった標準に基づいた、新しいソフトウェア基盤の構築」に焦点を当てた新しいオープンソースグループだ。 画像クレジット:Johnathan Nig... 続きを読む
Emacs Lisp で実装された Emacs バイトコードインタプリタを使ってバイトコードの解説 - Qiita
前書き Emacs Lisp で実装された Emacs バイトコードインタプリタを使ってバイトコードの解説記事です。 正確には Emacs Lisp バイトコードと言うべきかもしれないですが、長いのでここでは Emacs バイトコードまたは単にバイトコードと言います。同様に Emacs Lisp を elisp と言います。 作成したバイトコードインタプ... 続きを読む
RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
昨日、RubyのJITの性能改善のためのパッチを入れた。 github.com buildersconで新ネタの1つとして話そうと思ってた話題だけど、CFPが通らなかったのでブログにまとめる。RubyConfに出してるCFPが通ったらそっちでは話すかも。 JITすればするほどRailsが遅くなる問題 Rubyの次期バージョンである2.6には、バイトコードをC... 続きを読む
HTTPリクエスト単位でmrubyのバイトコードをProcとFiberで包みなおして実行した場合の性能とv2について - 人間とウェブの未来
2018 - 02 - 22 HTTPリクエスト単位でmrubyのバイトコードをprocとfiberで包みなおして実行した場合の性能について プログラミング 研究 Webサーバ 2018年4月にngx_mrubyのノンブロッキングHTTPクライアントとノンブロッキングsleep相当のメソッドに対応させてngx_mruby v2.0.0をリリースするという目標を立てた — 松本 亮介 / まつもとり... 続きを読む
JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
本記事では、BFのインタプリタがナイーブなアプローチから最適化されたバイトコードにコンパイルするアプローチへと徐々に洗練され、その過程で10倍も高速化されていく様子を見ていきます。このソース言語と、その最適化に伴うトレードオフのいくつかについて理解を深めていきましょう。本記事は、JITコンパイラに関するシリーズの第1回目です。計画としては、シンプルな入力言語を使ってそのインタプリタとJITをいくつ... 続きを読む
既存JavaアプリケーションをJavaScriptに変換「CheerpJ」 | OSDN Magazine
米Leaning Technologiesは6月19日、Webアプリケーション向けJavaコンパイラ「CheerpJ」を発表した。既存のJavaアプリケーションをWebアプリケーションにJARアーカイブから直接変換できるという。 CheerpJはJavaのバイトコードをJavaScriptに変換するコンパイラ。同社は2003年にC++をJavaScriptにコンパイルする「Cheerp」をリリース... 続きを読む
解剖Kotlin ~バイトコードを読み解く~ // Speaker Deck
Kotlinの特徴的な機能としてnull許容型や関数型や拡張関数などがよく取り沙汰されます。null安全だとか高階関数で簡潔に記述だとか拡張関数便利最高といった話は枚挙に暇がありません。確かに言語機能としていろいろとJavaに比べて便利なのは分かるんだけど、でもまぁ別にJavaを使っていてクリティカルに困っているわけではないしな〜学習コストとかチームへの導入コストを考えるとそこまで旨味を感じられる... 続きを読む
Microsoft、Apple、Google、MozillaがWeb高速化「WebAssembly」で協力 - ITmedia ニュース
Microsoft、Apple、Google、MozillaがWeb高速化「WebAssembly」で協力 Chrome、Firefox、Edge、Safariなどで共通に使え、Web高速化を実現するバイトコード「WebAssembly」のプロジェクトがスタートした。 Microsoft、Mozilla、Google、Appleのエンジニアらが、Webブラウザの高速化を目指して協力する。それぞれの... 続きを読む
IntelliJ IDEA 14 EAP 138.1029 リリース – Javaデコンパイラを内蔵 | JetBrains ブログ
IntelliJ IDEA 14 EAPをお試しの方は是非最新のビルドをダウンロードしてください。まだお試しでないかたも、これを機に是非! 最新ビルドで注目の機能は内蔵のJavaクラスデコンパイラです。サードパーティプラグインをインストールすることなく、ソースコードがないライブラリ内でどのようなことが行われているのか確認することができます。Java 8のバイトコードや、非Javaクラスの場合はうま... 続きを読む
mrubyのVMざっくり解説 - mirichiの日記
Rubyなんとなく、mrubyのVMの基本的なところを書いておこうと思ったので。誰かの参考になれば。大きな仕様的なところは、・32bit固定長のバイトコードを解釈して動作する。・レジスタをスタックに確保するタイプのレジスタマシンである。従って、スタックの任意の位置をレジスタ番号で指定して直接読み書き可能。・メソッドやブロックなどの単位でバイトコードがirep構造体にまとめられている。みたいな感じ。... 続きを読む
mrubyやKopiLuaにはなぜ文字連結用オペコードがあるの? ① (あるいはJavaの文字連結最適化について) - どみにっき
2013-12-08 mrubyやKopiLuaにはなぜ文字連結用オペコードがあるの? ① (あるいはJavaの文字連結最適化について) 前置き 最近色々ありましてmrubyやKopiLua(C#によるLua実装)のソースコードを読んだりしております。 ちょうどVM部分を読んでいたら、面白い部分を見つけました。mrubyのバイトコードにOP_STRCAT(文字連結)っていうのがあるのに驚いてたけど... 続きを読む
mrubyのバイトコードフォーマット解説 « 他人の空似
この投稿はmruby Advent Calendar 2013の3日目の記事です。 2日目はsuzukazeさんのmruby-redisでランキングを実装、4日目はdycoonさんです。 はじめに mrubyのエンジンはソースコードを逐次解釈して実行しているわけではなく、専用のバイトコードに変換して保持し、それをVirtualMachineの上で解釈して実行しています。 であれば当然コンパイル済み... 続きを読む
Javaのhello worldの読み方
Javaのhello worldの読み方 前書き お馴染み、hello worldのソース。 class Hello { public static void main(String[] args) { System.out.println("hello world"); } } このコードはコンパイルされると、こんなバイトコードになります。 ca fe ba be 00 00 00 32 00 ... 続きを読む