余渝
自己紹介
私はカルガリー大学のコンピューターサイエンスの大学院生で、以前はカリフォルニア大学サンタクルーズ校のコンピューターサイエンス学部学生です。今の修士課程はアセンブリ言語で手書きされた昔のビデオゲームをリバースエンジニアリングしてその時代での人間の習慣やパターンの分析に関しています。
研究関心
私の研究関心は主に「プログラムのレベルの違い」に関しています。例えば、コンパイラ、逆コンパイラ、リバースエンジニアリングのツール、ハードウェア・ソフトウェア相互作用です。高水準と低水準のモデルの間で変換することを理解したいし、この理解を用いてMODのAPIや既存のプログラムにもたらす仕組みを作るのが楽しいと思っています。プログラムのモデルの違いを詮索したり洞察を得たりするために前述のツールがわかる必要があると思っています。
プログラミング言語・コンパイラ
最近、Hexcastingのパターンを出力するOCamlのような言語のコンパイラーを設計してみています。Hexcastingはスタック指向で連結型言語なので再帰的な値や束縛をコンパイルすることは複雑になります。ただ今、私の言語の動作に関する正式なドキュメントをまだ書いていませんが、考えなどを経時的に記録するメモを公開しています。
リバースエンジニアリング
子供の頃からゲーム(その他のソフトウェアも含む)をリバースエンジニアリングとかMODとか行っています。最近、Ever Oasis 精霊とタネビトの蜃気楼にあるスクリプトをリバースエンジニアリングしてみており、後はEver Oasisのエンジンをリバースエンジニアリングするつもりです。Ever Oasisは内部でSquirrelのスクリプトを使用しています。これはValveがVScriptと読んでいる言語と同じものですが、Valveはプレーンテキスト形式だけで使うのに対し、Ever OasisはSquirrelをバイトコードのBLOBとして配布しています。初めに、既存のバイトコードのリバースエンジニアリングツールはなさそうでしたから、自分でsquirrel-explorerというツールを作りました。squirrel-explorerはWebAssemblyとScala.jsを組み合わせ、Squirrelコンパイラをユーザーのコードに対して実行し、アップロードされたファイルを逆アセンブルし、ユーザーが一致させられるようになるために両方のアセンブリコードを比較します。
ハードウェア・ソフトウェア相互作用
長い間、CPUはクロックパルスを待って次のパイプラインステージへ続ける代わりに入手可能になり次第データを処理する「クロックレスコンピューティング」に私は興味があります。例えば、エネルギー効率のために作ったクロックレスコンピューターを開発するGreenArraysなど、このようなデザインを検討している会社はすでにあります。長年の興味の一つなのはfs2やcats-effectにあるような関数型でストリーミングというパラダイムで、こういうパラダイムから着想を得ることで、リアクティブコンピューティングへのより一体的されたアプローチが可能かどうか検討したいと思います。
プログラミング経験
私は今主にScalaを使って、Javaも得意です。他の簡単にプログラムできる言語はC、C++、C#、Rust、Kotlinです。TypeScript・JavaScript、Python、F#、Crystal、Lua、Haskellを使ったこともあります。今のGitHubはs5bugです。
ゲーミング
お気に入りゲームトップ5:
- Ever Oasis 精霊とタネビトの蜃気楼
- コロリンパ2 アンソニーと金色ひまわりのタネ
- RABBIT & STEEL
- セレステ
- ゼルダの伝説 時のオカリナ
私はいたちごっこの化身です。何百時間ジオメトリーダッシュをして何百時間もセレステをしたのは私の性格を証明します。Ever Oasisもやり込み要素の多いエンドゲームがあり、メインのセーブデータではまだ100%クリアを目指してプレイ中です。
前にファイナルファンタジーXIVをやって、2ヶ月だけで一番プレイしたゲームになって、2000時間以上(二番プレイしたゲームの6倍)のプレイ時間があるのに今はやっていません。主に漁師、モンク、黒魔道士としてプレイし、未予習攻略やレイドレースを楽しみました。黄金の遺産でモンクと黒魔道士がジョブ簡単化されて、私は止めてピクトマンサーを使い始めましたが、ジョブとスキル回しが簡単になり続けて楽しめないようになってしまいました。代わりに、4.3のいわゆる「闘魂旋風脚モンク」をマインクラフトMOD(alymod)として再現しました。
学校のプロジェクト
他のツールを使うよりこのサイトを拡張する方がいい場合もあります。辞書式順序を保つために、特別な数体系を使います。
- 2022春
- 2021年から2022年までの春の学期です。
- 2022夏
- 2021年から2022年までの夏の学期です。
- 2023秋
- 2022年から2023年までの秋の学期です。
- 2023冬
- 2022年から2023年までの冬の学期です。
2022春の日本文化
現在は英語のみです。
2023秋の視覚的な伝達と相互作用
現在は英語のみです。
このウェブサイトについて
私はCSSやJavaScriptやカスタムなフォントを使わずにaly.fish
を閲覧しやすいように工夫してみています。でも、サイトの一致のために、CSSとフォントは使われますしユーザーさんのブラウザがダウンロードするでしょう。ソースコードはGitHub(s5bug/aly.fish)にあります。このサイトはAstro v5.10.1で生成され、Cloudflare Pagesでホスティングされています。