ソースコードを見てどのプログラミング言語なのかを特定するクイズ「Language Identification Quiz」
というものを見つけたのでやってみた。
I just did the @triple_byte programming quiz and got 87%! See if you can beat my score here: https://t.co/NCoreBcmPV
— YOS G-spec (@yosgspec) 2019年5月27日
結果はこんな感じ。
問題は毎回固定っぽいので1問ずつ振り返る。
一応、まだやっていない人はネタバレになるので注意。
1問目
document.getElementByIdから一目瞭然。
DOMと言えばJavaScript。
2問目
def - end構文と言えばRubyってことでRuby。
Prolog(文法の知らない言語)が万が一その特徴を持った言語の可能性もあったが。
3問目
using文とLinq、Console.WriteLineからC#と特定可能。
4問目
知らない言語。
thisでなくselfであることからJavaを除外。
書かれている内容が静的言語っぽいのでPerlを除外。
ポインタっぽい*が見えたのでObjective-Cと消去法で決定した。
5問目
$記号を含む変数の存在からPerlとPHPの2択。
Perlはもっとごちゃごちゃになりそうという偏見からPHPを選んだ。
6問目
知らない言語。
TypeScriptはほぼJavaScriptになるはずなので除外。
型宣言が後置だった気がするみたいなおぼろげな記憶からDartを選んで間違えた。
Dartの型宣言はCと同じく前置だったので完全なる勘違い。
7問目
知らない言語。
完全に勘だけど関数宣言がfnだった気がするみたいな感じでRust正解。
8問目
defnで関数宣言されるLisp系言語と言えばClojure。
CommonLisp/EmacsLispはdefunで、Schemeがdefine。
9問目
知らない言語。
最も読んでいて理解できない。
CommonLispとRustはとりあえず除外できるが…って感じ。
勘で当てた。
10問目
11問目
関数型言語っぽい感じでガードがあるのでHaskellかなー的な。
Haskellは2回入り口で挫折した。
12問目
$記号でPHPとPerlに絞ってelsifからPerlだったかな?って感じ。
13問目
知らない言語。
Perl、Objective-C、C#はC系の言語なので消去法でProlog。
14問目
begin - endからPascal系言語だって特定してAdaを選んでしまった。
VHDLって初めて見た。
15問目
なんかビジュアルっぽい良くわからない言語。
PietとGLSLにとりあえず絞って勘で選んでPietと当てた。
あとがき
結果、勘だらけだったけど初見13/15問正解でした。
感想としてはまだまだ知らない言語も多いなぁという感じ。
使わない言語でも言い当てられるくらいの知識があったらうれしいね。