kmizuの日記

プログラミングや形式言語に関係のあることを書いたり書かなかったり。

【月1言語企画】文法がVBぽいだけのプログラミング言語VBLを作ってみた

3〜5月にかけて、月1プログラミング言語企画が続いていない、これは良くない!ということで、急遽お茶を濁すために作った言語です。基本的に、Klassicをベースに構文だけVBぽくした言語です。リポジトリは以下です。 github.com 次のような構文が使えます…

毎日ウォーキング(例外無し)を始めて10日経ちました

新型コロナウイルス関係で、2月下旬頃からほぼ完全リモートが続いているのですが、運動不足がいい加減ひどいので、毎日必ずウォーキング習慣というのを始めてみました。ルールは簡単で 毎日必ずウォーキングをする(例外は認めない) 時間があるときは1時間…

【月1言語企画】まだ実装されてないけど、関数名は決まってるという意図を表現可能な静的型付き言語Funtomを作ってみた

こんばんは。今日は、月1言語企画の一環として作成したプログラミング言語Funtomを紹介したいと思います。 github.com というか、ついさっきプロトタイプができたばかりなんですが。 基本的には、ほぼ自作のプログラミング言語Klassic github.com をベース…

書評:プログラミング言語大全

プログラミング言語大全作者:クジラ飛行机発売日: 2020/04/18メディア: 単行本(ソフトカバー) 技術評論社の編集さんから、「プログラミング言語に詳しい人」枠でなんだか献本いただきました。ただ、タイトルを見た時点でそこはかとなく不安があったので、…

ちょっと行列作りますね言語Matlikeを作りました

注:この記事は、2020年1月にQiitaに投稿した自作言語Matlikeについての記事のリメイクです。アカウントを消して元の記事が全部消えたので、移植ではなくリメイクです。 はじめに 私は、2019年12月から、1か月1言語計画というのを始めています。要はどんなダ…

Scalaを学ぶと何が嬉しいかを考えてみる

まえがき 「Scalaを学んで何が嬉しいか」ていうのは、人によって様々な答えがあると思いますが、最近ようやく自分なりの答えが出た気がするので書いてみます。 Scala採用企業で働くのに手っ取り早い 多くの人の言語を学ぶ動機は、就職や転職に役立つというも…

Scalaを手っ取り早く学ぶのに適したリソースを紹介する(2020年版)

はじめに こんにちは。水島です。例のQiita炎上の件で、「ああ、これはもう自分向きのサービスじゃないな」と思ってサックリとアカウント消して退会したわけですが、ちょっとこれくらいはレスキューしておけば良かったな…と思った記事があったので、リライト…

コード履歴書とかいうものを書いてみた

巷ではやっているらしい。想い出話を含めて書き起こしておくと、後の自分の役に立つかもと思ったので、書いてみる。 この他に、大学1年からプログラムを書くバイトをしてたので、C++で書かれたCORBA処理系をいじくったり、Ethernet層に相当する何かの実装を…

ダイエット振り返り - 2020/01/01~2020/01/19

元旦にダイエット宣言してから、半月ほど経ったので、ちょっと振り返ってみたいと思います。まずはグラフです。 2020年1月1日~2020年1月19日までの体重変化 元旦が83.8kgで、今朝が82.2kgです。その間、食事や水分摂取による上下があったことを考慮しても、…

IT系勉強会の参加者にお願いしたい、たった3つのこと

私は、大学院生時代含めれば、2008年から色々な勉強会を開催していて、直近数年でもそこそこの数を開いています。その動機は、技術を布教したいとか、ある分野を学ぶ人の助けになりたいとか、単に雑談の場を作りたいとか色々ありますが、別段高尚な意識があ…

山手線一周ウォーキング(二度目)をしてきました

一度目のときの記録 ⚡️ “山手線一周ウォーキングの記録 by @kmizu”https://t.co/9qvGAnqu43— Kota Mizushima (on a diet) (@kmizu) 2017年5月4日 今回の記録 ⚡️ “山手線ウォーキング二度目 in 2020/01/04”https://t.co/eg4NVS3ZSj— Kota Mizushima (on a die…

ダイエットします - 目標体重71kg

あけましておめでとうございます。1月1日ということで、きりがいいので、今年の目標の一つ(大きなもの)をまず宣言しておくことで、自分を追い込むメソッドを使ってみようと思います。 現在、私の身長は173cm、体重は83.4kg(今朝の起床時)。BMIは27辺りで…

WORDIAN Advent Calendar 2019/12/22: プログラミング言語Klassicの紹介

まえがき この記事はWORDIAN advent calenderの22日目の記事です。 以前にこのブログでも触れたことがあるのですが、私が開発中のプログラミング言語Klassicについて紹介します。 Klassicの紹介 リポジトリはこちら。Scala環境があれば、ビルド&実行できま…

ポモドーロ・テクニックぽいもの(仮)をできるだけ厳密に実践してみた

ポモドーロ・テクニックぽいもの(仮)をできるだけ厳密に実践してみた結果です。

Macro PEG再考:名前呼び出しと値呼び出し

Macro PEGは、私が2016年頃に、PEGに対する拡張として提案したものです。2016年のプログラミング研究会で発表したスライドが kmizu.github.io にあります。さて、当時考えたMacro PEGは、Macro PEGの引数付き規則を名前呼び出し(call by name)として評価す…

Fortressのお話(あるいは、2007年1月のとあるWeb日記)

昨日、内輪でチャットしているときに、ふと、学部生~修士時代の自分のWeb日記(tDiary)を見てみたくなって、色々発掘してたら、面白いものが出てきてので、張り付けていこうと思います(ほとんどが駄文なので、なんか考古学的に(?)意味があるやつだけ載…

私なりのオブジェクト指向プログラミングの定義

きしださんの以下のツイート オブジェクト指向はこの20年だれも再定義せずみんな自分の思うオブジェクト指向を暗黙に仮定して適当に話してるだけなので、技術的な共通認識のもとの議論はほとんどできないんですよ。という話を「オブジェクト指向をきちんと使…

Scala, Scala 2, Scala 3, Dotty, DOTの違い:処理系と言語を区別する

はじめに 昨日、 ScalaMatsuri 参加者の一人から、タイトルの用語について、どういう使い分けをされているのかがわからない、といった質問があったので、処理系と言語の区別という観点も踏まえてちょっと整理しておきます。Eugene Yokotaさんから聞いた話と…

ScalaMatsuri 2019に参加しました

もう日をまたいでしまいましたが、6/27~6/29にかけて行われた、ScalaMatsuri 2019に参加してきました。まず、総評というかざくっとした感想ですが、とても楽しかったです。特に、アンカンファレンスDayは完全に学生気分に戻っていました。日本のScalaコミュ…

株式会社ドワンゴを退職します

はじめに 当初、ScalaMatsuri 2019が終わった次の日の、6月30日に書く予定だったのですが、最終出社日も終わっていることだしよいかということで、エントリを書くことにします。 2019年6月30日をもって、5年と3か月勤めた株式会社ドワンゴを退職します。最終…

自作パーザコンビネータライブラリを集めたリポジトリ mlcombinators を公開しました

私がプログラミング言語を学ぶときには、パーザコンビネータライブラリを作る、ということはScala福岡2019の講演とかでも他のところでもよく言っていることなのですが、せっかくなので、これまで私が作ってきたミニパーザコンビネータライブラリ集をひとつの…

実践Scala入門(共著)が発売されます

https://www.amazon.co.jp/dp/4297101416 企画自体は2015年くらいから始まっていたんですが、紆余曲折あって、約3年経ってしまいました。ともあれ、ようやく出版までこぎつけられてほっと一息です。 実際には多少遅れる可能性がありますが、10月27日から技術…

ScalaMatsuri 1日目の雑感

ScalaMatsuri Training Dayは、別チケットであることからもわかるように、ScalaMatsuriとは若干独立していました。というわけで、この日から本番でした。この日、私が一番楽しみにしていたのはMartin Thompsonさん(Javaで高パフォーマンスのメッセージング…

ScalaMatsuri 2018 Training Dayの雑感

今は金曜の夜(土曜日の朝とも言う)で、眠れないので、せっかくなので感想でも書いてみるかーってな具合に書いてみることにしました。 さて、ご存じの方も多いかもしれませんが、2016に実質運営を譲って、2017には名目上も座長の権限を譲ったため、今年は私…

Hello, Dart (2) - パーザコンビネータ

いつだったか、新しい言語を学ぶときのHello, Worldはパーザコンビネータを書くことにしてる、といった事を言った覚えがあります。実際、これまで学んできたたいていの言語でミニパーザコンビネータライブラリを書いてきました。というわけで、Dartでもパー…

Hello, Dart (1) - フィボナッチ数列

Flutterを触ってみたくなったので、ついでにDartの勉強も始めることにした。手始めに、フィボナッチ数列を求める Stream を作って、そっから最初の10要素を取り出して表示するというプログラム。 import 'dart:async'; import 'dart:core'; main() async { v…

ScalaMatsuri 2018 Training Dayで「Scalaに関する神話と真実」という発表をします

このブログを更新するのも、ちょっと久しぶりですね。今回は宣伝というか、表題の件についてちょっと書こうと思います。 ここ数年、ScalaMatsuriはかなりの規模で開催されています。例年は2日間だったのを、3日間に拡張して、最初の1日を 「Training Day」と…

今年の振り返り

今年もあとわずかとなって来ましたので、今年を振り返ってみようかと思います。 全体的には、対外的なイベントでの発表や主催、あるいは招待が増えたことが今年の特徴かなという感じで、新しいことへの取り組みなどの「挑戦」はあまりしていなかったかなとい…

Kotlinのコレクションは「不変」と「可変」に分かれていない

Kotlinのコレクションライブラリに関する解説として、よく、 Kotlinのコレクションは不変と可変に分かれていて〜 といった形のものを見かけます。そして、その例として、 val list: List<Int> = listOf(1, 2, 3) list.add(4) // コンパイルエラー のようなコード</int>…

Javaのジェネリクスは「まがい物」ではない

先日、自分が書いた kmizu.hatenablog.com に対する反応として、「Javaのようなまがい物のジェネリクスと比較するのは適切でない」「Javaのジェネリクスと比較するのは適切でない」(おそらくC#や(C++等(2017/09/24追記))の言語と比較して)といった コメ…