2020-01-01から1年間の記事一覧
blog.sushi.money やってみました。調べてないけど9割方セルクマ ブクマしてくださった方、ありがとうございます。 memo88の2020年ブックマークランキングベスト24(累計30ブックマーク) # タイトル 1位 きしださんのかわいいリレーショナルデータベースをRu…
Qiita の方に書きました。 qiita.com
Qiita の方に書きました。 qiita.com
移植一覧に戻る Qiita の方に書きました。 qiita.com
Qiita の方に書きました。 qiita.com
Qiita の方に書きました。 qiita.com
移植一覧に戻る やっつけなので汚いです。ライフゲームのコンパイルが通ったのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com ベースになっているバージョン: tag:50 のあたり (2021-06-20 追記) ステップ60 の修正まで反映し…
Zig 昨日触りはじめたばかりでまだぜんぜん分かってません。 まずは std.os.argv でコマンドライン引数を取得します。 pkv は確認用のユーティリティ関数で、 print key value のつもり。 // arg_to_i_v1.zig const std = @import("std"); fn pkv(k: []const…
Zig(ziglang) で標準入力から1バイト読んで標準出力に書くのを繰り返すだけの素朴な cat コマンドを書いてみました。 Zig はさっき触り始めたばかりで右も左も分からない状態です。 <追記 2022-07-17> v0.8.0 で InStream, OutStream がそれぞれ reader,…
Zenn に引っ越しました。 zenn.dev
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 変数宣言周りの修正(パーサ編) 第48回 変数宣言のコード生成処理の改善など で変数宣言まわりを変更したときは特に考えてなかったんですが、これはパーサも合わせておいた方が良さそうに思えます…
移植まとめに戻る やっつけなので汚いです。ライフゲームのコンパイルが通ったのでヨシ、というレベルのものです。 github.com C♭は書籍 『ふつうのコンパイラをつくろう』の題材として作られた、C によく似た言語です。コンパイラ cbc は Java製。 移植元 m…
(2016-03-06) ふつうのコンパイラをつくろう Ubuntu64bit : 勉強日誌 (2020-07-23) 「ふつうのコンパイラをつくろう」のcbcをJava8以降+64bitで動かす - Qiita こちらの2つの記事を参考にさせてもらいました。ありがとうございます。以下の内容はこれらの記…
移植まとめに戻る Qiita に引っ越しました qiita.com
移植一覧に戻る 20年ぶりくらいにC言語のコードを書きました。 かなり忘れてます。 やっつけなので汚いです。ライフゲームのコンパイルが通ったのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com ベースになっているバージョン: …
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る まずはしょぼいミスを修正……。 --- a/vgparser.rb +++ b/vgparser.rb @@ -478,7 +478,7 @@ if $PROGRAM_NAME == __FILE__ begin tree = parser.parse() - rescue ParseError => e + rescue Parser:…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る Java版 を書いているときに codegen_stmts() の微妙なところに気付いてしまいました。 def codegen_stmts(fn_arg_names, lvar_names, stmts) alines = [] stmts.each do |stmt| stmt_head, *stmt_r…
機能を減らしてハードルを下げまくった、初心者・入門者(=自分)向けの、かんたん・素朴で割といいかげんな自作言語のコンパイラ Mini Ruccola(vm2gol-v2) の移植です。 移植元の Ruby版のコンパイラ部分だけだと 1000行くらい、という素朴さ。 ノリとし…
移植一覧に戻る Java で書いてみました。やっつけなので汚いです。ライフゲームが動いたのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com ベースになっているバージョン: tag:47 のあたり メモ アセンブラ・VM は移植対象から外…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る パーサが結構いいかげんなので、直します。 引数のパースの厳密化 一番適当なのが引数のパースです。 現状だと my_func(1 2 a) のように区切りのカンマがなくても文法エラーになりません。 という…
目次ページに戻る require_remote にかかる時間がさすがに長すぎるので、なんとかしたい……。 開発効率的にも辛いですし、他の人に見てもらうときもなるべく待たせないようにしたい。 というわけで調べてみました。 ネックになっているのは data.rb のコンパ…
移植一覧に戻る Dart で書いてみました。やっつけなので汚いです。Dart よく知らないけどライフゲームが動いたのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com ベースになっているバージョン: tag:46 のあたり 追記 2021-03-21…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る コード生成器で気になっていた部分を修正しました。 codegen_stmts() まわりの整理 修正前の状況を見てみましょう。 呼び出しの関係が次のようになっています。 呼び出す側 => 呼び出される側 code…
移植一覧に戻る Python で書いてみました。やっつけなので汚いです。Python よく知らないけどライフゲームが動いたのでヨシ、という程度の雑なものです。 github.com 移植元 github.com <自作言語処理系(Ruby版)の説明用テンプレ> 自分がコンパイラ実装…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 今回は(主に VM の)リファクタリングです。 テストが用意できたので、安心してサクサクと進められます。 Rubocop 関連 Rubocop の設定が古くなってると言われたので設定を修正して、新たに指摘さ…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 残りのテストをまとめて追加しました。 アセンブラ・コード生成器・パーサについては ひとまずライフゲームのコードを与えて出力が一致するか検証するようにしました。 これで、パース〜アセンブル…
nowokay.hatenablog.com きしださんのかわいいリレーショナルデータベースの最初のバージョンを写経してみました。 この記事、もう8年前なんですね。ついこないだ読んだような気がしていましたが……。 簡単なものだったら自作できないかなと以前から思ってい…
移植一覧に戻る TypeScript 入門というか、とりあえず何か書いて慣れようと思って書いてみました。やっつけなので汚いです。TypeScript まだよく分からないけどなんか動いたのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com <…
とりあえず最低限の流れが知りたかったので、int32 だけの簡単なデータでやってみました。 require "arrow" # -------------------------------- # 列1 のデータを用意 builder = Arrow::Int32ArrayBuilder.new builder.append(1) builder.append(2) array1 …
前 consのデータをメモリに置くとどうなるのか、というのを軽く試してみるつもりだったのが、 もうちょっと育ってしまいました。 ※ C言語云々と言っているところはかなりうろ覚えで適当です。だいぶ忘れてます……。 ※ また、既存のよく知られた何かに準拠して…