senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:08 JST sonota88 sonota88

    vm2gol-v3

    In conversation Wednesday, 03-Feb-2021 08:18:08 JST from qiitadon.com permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      (なお C言語的に正しいかはよく分かってない)

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      職人が真心込めてスクリプトで自動生成したダミー出力

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      ☑ 空の main 関数のコード生成

      func main(){} がコンパイルできるようになった ???? #進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      きりが良いところまで来たのでリファクタリング+クリンナップ

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      v2 のC言語版を step 50 まで進めた

      https://github.com/sonota88/vm2gol-v2-c

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:49 JST sonota88 sonota88
      in reply to

      ここまでの進捗を今話題の GitHub に push#進捗 #自作言語

      https://github.com/sonota88/vm2gol-v2/tree/v3_wip/selfhost

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: avatars.githubusercontent.com
        sonota88/vm2gol-v2
        Rubyで書いたオレオレVMとアセンブラとコンパイラ. Contribute to sonota88/vm2gol-v2 development by creating an account on GitHub.
    • nukosu@pao.moe's status on Wednesday, 03-Feb-2021 08:17:49 JST nukosu nukosu
      in reply to

      @sonota88 ????♂️ 「Copyright警察の者ですが...」

      In conversation Wednesday, 03-Feb-2021 08:17:49 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:50 JST sonota88 sonota88
      in reply to

      コード生成の前にポインタまわり整理しといた方がいいかな……

      In conversation Wednesday, 03-Feb-2021 08:17:50 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:50 JST sonota88 sonota88
      in reply to

      デリファレンスの記号を ^ から * に変えて括弧内に普通に式を書けるようにしてみた#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:50 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:50 JST sonota88 sonota88
      in reply to

      アドレスの演算も要するにただの数の計算で、その結果を使ってデリファレンスすればよい。……ということにすると例外ルールが減って分かりやすくなった気がする。

      In conversation Wednesday, 03-Feb-2021 08:17:50 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      5行追加して if文が書けるようになった。これはお買い得。

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      空の main 関数 func main(){} の字句解析ができるようになったので次は空の main 関数の構文解析へ#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      とりあえずダミー出力でテストを通す

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      (1) 構文木のデータを組み立てて to json(2) 組み立てる処理を関数化

      データはまだダミー

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      assert 関数作って assert できるようにした。べんり。

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      グローバル変数操作用の関数

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:51 JST sonota88 sonota88
      in reply to

      空の main 関数 func main(){} がパースができるようになったので、次はコード生成へ#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:51 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:52 JST sonota88 sonota88
      in reply to

      if文を使えるようにするには if を case when に変換するだけでよさそうと思いついた。どこでやるか → レキサでやるのが一番簡単そう。

      In conversation Wednesday, 03-Feb-2021 08:17:52 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:52 JST sonota88 sonota88
      in reply to

      関数の途中での return ができないのと break がないのがちょっと辛い。途中 return があれば break の代用はできそうで、コールスタックを用意すれば途中 return できそうだけど、セルフホストの対象が増えてしまうのでちょっと悩みどころ。

      In conversation Wednesday, 03-Feb-2021 08:17:52 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:53 JST sonota88 sonota88
      in reply to

      ????

      In conversation Wednesday, 03-Feb-2021 08:17:53 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:53 JST sonota88 sonota88
      in reply to

      malloc という名前だと普通の立派な malloc を想起しそうので allocate という名前に変更

      In conversation Wednesday, 03-Feb-2021 08:17:53 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:53 JST sonota88 sonota88
      in reply to

      レキサの最初のテストが通るところまでできた。後はこれを育てていけばいいはず。#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:53 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:53 JST sonota88 sonota88
      in reply to

      関数の存在チェックに加えて引数の数が間違ってないか調べるくんになった

      In conversation Wednesday, 03-Feb-2021 08:17:53 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:54 JST sonota88 sonota88
      in reply to

      JSON(のサブセット)のパース編完了

      In conversation Wednesday, 03-Feb-2021 08:17:54 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:54 JST sonota88 sonota88
      in reply to

      -, &&, || の代わり ????

      In conversation Wednesday, 03-Feb-2021 08:17:54 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      ☑ 組み込み関数追加: get_spが抜けてた

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      ☑ [[]], [1,"a",[2,"b"],3,"c"] をアンパースして JSON にするテストが通るようになった

      これでJSONアンパース編完了???? 次はJSONパース編#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      うーむ、ちゃんと動いててえらい

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      プリプロセッサ書いた(ここは Ruby)。マクロが不要になったのでプリプロセッサはこれだけで OK。#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      未定義な関数を呼び出していないか調べるくん#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:55 JST sonota88 sonota88
      in reply to

      ☑ 標準入力を全部読んで配列に詰める read_stdin_all☑ strlen, substring, parse_int, その他下請けの関数いろりろ☑ デバッグ用: panic, p_char, p_int☑ [1,"a",[2,"b"],3,"c"] をパースするテストが通った#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:55 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      グローバルな定数はプリプロセッサ作って置換したりしないとだめかなあと考えてたけど、関数にしてしまえばよいと思いついた。関数はどこからでも使える。

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      グローバル定数はこれでよいので、プリプロセッサでは #include 相当の処理だけやれば良さそう

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      print 関数作った

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      strcpy も作った

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      ☑ グローバル定数を関数として書くようにした☑ _debug(); の箇所からステップ実行開始☑ print 関数作った☑ strcpy 関数作った☑ ["fdsa"] をアンパースして JSON にするテストが通るようになった#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:56 JST sonota88 sonota88
      in reply to

      ☑ レジスタ追加: sf☑ VM命令追加: jump_g, div_ab☑ 二項演算子追加: <, /, %☑ 組み込み関数追加: _panic☑ ヒープとスタックの衝突検出☑ 整数を文字にして出力する print_int 関数☑ [-123, "fdsa"] をアンパースして JSON にするテストが通るようになった#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:56 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:57 JST sonota88 sonota88
      in reply to

      心の目で見ると malloc に見えるかもしれない何か#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:57 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:57 JST sonota88 sonota88
      in reply to

      ☑ 空のリストを JSON に変換#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:57 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:57 JST sonota88 sonota88
      in reply to

      &a や 1 + 2 のような式を関数呼び出しの引数として書けるようにした。これでいちいち var g_ = &g; call f(g_); みたいに分けて書かなくてよくなった。

      f(g()) みたいな入れ子の関数呼び出しはまだダメ。

      In conversation Wednesday, 03-Feb-2021 08:17:57 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:57 JST sonota88 sonota88
      in reply to

      ☑ [1] をアンパースして JSON にするテストが通った#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:57 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:58 JST sonota88 sonota88
      in reply to

      心の目で見ると構造体に見えるかもしれない何か

      In conversation Wednesday, 03-Feb-2021 08:17:58 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:58 JST sonota88 sonota88
      in reply to

      心の目で見るとグローバル変数に見えるかもしれない何か#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:17:58 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:59 JST sonota88 sonota88
      in reply to

      あー、そっか、デリファレンスも二項演算子扱いにすればよい、なるほど(cbc を参考にしながら)

      In conversation Wednesday, 03-Feb-2021 08:17:59 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:17:59 JST sonota88 sonota88
      in reply to

      ひいこら言いながらポインタまわりリファクタリングしてとりあえずテストはまた全部通るようになった

      In conversation Wednesday, 03-Feb-2021 08:17:59 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:00 JST sonota88 sonota88
      in reply to

      ポインタを渡して呼び出し先で値を変更するのもテスト通った。今日はここまで。#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:00 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:00 JST sonota88 sonota88
      in reply to

      ☑ print 関数で文字列を print できるようになった#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:00 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:00 JST sonota88 sonota88
      in reply to

      最適化なしでどうなるか見たいので gcc じゃなくて cbc を使ってみる?

      In conversation Wednesday, 03-Feb-2021 08:18:00 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:01 JST sonota88 sonota88
      in reply to

      cat コマンドのテストも書いた

      In conversation Wednesday, 03-Feb-2021 08:18:01 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:01 JST sonota88 sonota88
      in reply to

      あー……配列とポインタを統一的に扱えるかと思ったけどダメ ???? C だと暗黙的になってるとこをどう処理するか

      In conversation Wednesday, 03-Feb-2021 08:18:01 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:01 JST sonota88 sonota88
      in reply to

      (A) 型を導入(B) ^(a) じゃなくて明示的に ^(&a) と書く

      なるべく見えにくいルールを減らしたい(冗長でもよい)ので (B) かなー?

      In conversation Wednesday, 03-Feb-2021 08:18:01 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:01 JST sonota88 sonota88
      in reply to

      (C) 変数名を見て型を判断(D) 配列の場合は宣言時に自動的にポインタを生成

      とかも思いついたけど最初はC言語から離れすぎない方が無難そうなのでいったんボツ。(C) は要するに型だから (A) のバリエーションかな。

      In conversation Wednesday, 03-Feb-2021 08:18:01 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:01 JST sonota88 sonota88
      in reply to

      ☑ 関数にポインタを渡せるようになった

      #進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:01 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:02 JST sonota88 sonota88
      in reply to

      ^r, ^dr にすると…… ref, deref の場合と同様に統一感・対称性は出るけど視認性が微妙かなあ

      var a = 11;var b_;set b_ = ^r(a);set ^dr(b_) = 22;

      In conversation Wednesday, 03-Feb-2021 08:18:02 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:02 JST sonota88 sonota88
      in reply to

      とりあえず括弧は必須にしとこ

      In conversation Wednesday, 03-Feb-2021 08:18:02 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:02 JST sonota88 sonota88
      in reply to

      putc があれば出力を検証するテストも書けるじゃんね

      In conversation Wednesday, 03-Feb-2021 08:18:02 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:02 JST sonota88 sonota88
      in reply to

      ☑ ポインタ演算で配列に代入(C の *(xs + ...) = ... と同じ)

      これを先に作っておけば配列の添字演算子 [] は不要だった、はず#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:02 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:02 JST sonota88 sonota88
      in reply to

      Hello, world のテスト書いた#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:02 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:04 JST sonota88 sonota88
      in reply to

      ☑ アドレス演算子 &☑ デリファレンス演算子 ^

      ポインタが使えるようになった#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:04 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:04 JST sonota88 sonota88
      in reply to

      演算子じゃなくて関数っぽくするのもあり……?(当然書きにくいけど)

      var a = 11;var b_;set b_ = ref(a);set deref(b_) = 22;

      In conversation Wednesday, 03-Feb-2021 08:18:04 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:04 JST sonota88 sonota88
      in reply to

      記号+括弧必須。これでもいいかも(今回はパースはがんばらないことにする)

      var a = 11;var b_;set b_ = &(a);set ^(b_) = 22;

      In conversation Wednesday, 03-Feb-2021 08:18:04 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:05 JST sonota88 sonota88
      in reply to

      標準入力から1文字ずつ読んで配列に詰められるようになった

      In conversation Wednesday, 03-Feb-2021 08:18:05 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:05 JST sonota88 sonota88
      in reply to

      あ、そうか、 putc 作ったから printデバッグできるやん

      In conversation Wednesday, 03-Feb-2021 08:18:05 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:06 JST sonota88 sonota88
      in reply to

      ☑ putc / Hello, world! できるようになった#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:06 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:06 JST sonota88 sonota88
      in reply to

      ☑ 配列の宣言☑ 配列に値をセット#進捗 #自作言語

      先にポインタやった方が良かったかも

      In conversation Wednesday, 03-Feb-2021 08:18:06 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:18:06 JST sonota88 sonota88
      in reply to

      ☑ 配列の添字がローカル変数になってるパターン#進捗 #自作言語

      In conversation Wednesday, 03-Feb-2021 08:18:06 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:25:37 JST sonota88 sonota88
      in reply to
      • nukosu

      @nukosu 何でしょうか

      In conversation Wednesday, 03-Feb-2021 08:25:37 JST permalink
    • nukosu@pao.moe's status on Wednesday, 03-Feb-2021 08:25:37 JST nukosu nukosu
      in reply to

      @sonota88 SIer Copyrightネタの取っ掛かりでマジレスが返ってくるとは思いませんで(´・ω・) スタ...(´・ω・) スミマセン

      In conversation Wednesday, 03-Feb-2021 08:25:37 JST permalink
    • nukosu@pao.moe's status on Wednesday, 03-Feb-2021 08:39:12 JST nukosu nukosu
      in reply to

      @sonota88 (*´・ω・) 人(・ω・`*)

      In conversation Wednesday, 03-Feb-2021 08:39:12 JST permalink
    • sonota88@qiitadon.com's status on Wednesday, 03-Feb-2021 08:39:13 JST sonota88 sonota88
      in reply to
      • nukosu

      @nukosu あっ・・・スミマセン????ひょっとしてまずいことしてたかなと思ってマジレスしてしまいした(私が悪い)

      In conversation Wednesday, 03-Feb-2021 08:39:13 JST permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.