yhara.jp

Recent Posts

本:『時間は存在しない』

2021-02-03
Book

『時間は存在しない』を読んだ。

物理学者が書いた本だけど、一般向けで、数式はほぼ出てこない。「ループ量子重力理論」の専門家が時間というものをどのように捉えているか、を説明した本。

とてもエキサイティングで面白かったが、実験的事実なのか作者の予想なのかが明記されていないところがあるのでそこだけは注意。たとえば時空はループし得る("常に未来に向かいながらも時空のもとの点に戻ってくるような構造を作り出すこともあり得る")と書いてあってびっくりしたのだけど、調べた範囲ではどうも「相対性理論に反しない範囲で、そのような構造を許す宇宙を考えることができる」というだけのことらしい?

(more...)


クラロワ 巨スケロイジャイでトロフィー5000

2021-01-03
Game

5000行ったのでこのデッキの構築とか立ち回りについて書いておく。

今期は先月のアプデでトロフィー増減の仕様が変わって、だいぶレートが上がりにくかった。

巨スケロイジャイデッキ

元にしたデッキはこちら。 https://www.youtube.com/watch?v=R_LN9azepwE

(more...)

2020年

2020-12-31
Diary

2020年の振り返り。

イベント

今年はほとんどのイベントがオンライン化するという未曾有の事態だった。登壇としては10月のlangsmith1件で、これもオンライン。

開発

Shiikaの開発が進み、だいぶ「本物」に近づいてきた。advent of codeとかで実際にShiikaプログラムを書いてみてるけど、体験はとてもよい。まだまだ荒削りだけど、方向性が間違っていないことが確認できたといえよう。

(more...)


Shiika進捗2020

2020-12-04
Tech

このエントリは言語実装 Advent Calendar 2020の4日目のエントリです。昨日はmitsuchiさんのLLVM の Kaleidoscope を育てながら作るでした。

言語実装アドカレ、今年は全日埋まってるんですねえ。処理系Slackのおかげでしょうか?すごいなあ。

Shiikaは私が作っている、Ruby風の文法を持った静的型付けプログラミング言語です。Rubyのような手触りを保ちつつ、型をベースにしたプログラミングを楽しめる言語を目指しています。数年前から開発していて、昨年夏からはRust + LLVMによる処理系実装を始めました。

本記事では今年の主な成果を振り返ってみようと思います。

サンプルの追加

(more...)

2020年11月 (Alpha28)

2020-12-03
Diary

近況です。

Shiika

今月はブロック記法に対応したのと、やっかいなバグを2つ直した。

(more...)

28キーのミニマルなキーボード、Alpha

2020-12-02
Tech

このエントリはキーボード #1 Advent Calendar 2020の2日目の記事です。前日はskyhigh_worksさんの【QMK】VSCodeでKeycodeの補完を有効にする - 天高工房でした。

本記事では28キーのミニマルなキーボード、Alphaの紹介をします。一見とっつきにくそうですが、とっても楽しいですよ!

Alphaとは

Alphaはキー数がわずか28しかない小さなキーボードです。いわゆる30%キーボードの一種ですが、代表的な30%キーボードであるGherkinでさえ30個のキーがあるのに、そこからさらに2つキーが減っています。

(more...)

2020年10月 (Shiika langsmith/vtable)

2020-11-01
Diary

Shiika

自作プログラミング言語の集いで発表した。スライドはここ

vtableの方は10月ぎりぎりで実装できた。残念ながら型システムの問題でまだ実際のメソッド(Object#inspectとか)は実装できていないが、11月中にはなんとかなるだろう。

BiwaScheme

dynamic-windがうまく動かないケースがあるという報告をもらって調べてみたら、確かにスタックがこわれていた。継続まわりのVM命令をいじったときに、「aレジスタを復元する」という処理の位置が間違っていたようだ。winderを実行するとaレジスタは破壊されるので、winderの実行が終わったあとで復元しなければならない。

(more...)

Go Language Specification輪読会に参加した

2020-10-16
Tech

たまたま時間の都合ができたので、前から気になっていたGo Language Specification輪読会に参加してみた。今回はExpressionsの冒頭を読んだ。

面白かったのは、 if u = User{}; true { のようにifのあとに中括弧を書くとエラーになるという話。

Goの中括弧はブロックを示す場合と、composite literalを示す場合がある。のだが、上記の場合はどちらなのか決定できない。そのため、ifの直後はパーサが特別なモードになっていて、中括弧は必ずブロックと見なすらしい。その結果、上記は(EBNF上はvalidにもかかわらず)エラーになるというわけ。

ちなみに以下のようにまぎらわしい箇所を括弧でくくってやると通る。

if u = (User{}); true {

CやJavaScriptではifのあとに括弧が要るからこういう問題は起こらない。Goでは括弧をなくした代わりにパーサが状態を持つようになったというわけ。

Rubyではこういうのが無数にあるんだけど、Goにもあるのが意外で面白かった。


Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author