LL言語 と // コメント
C++ ユーザーだったら、 // といったらコメントアウトでしょう。
誰がなんと言おうと。
//コメントアウト
なのに、LL言語だとそれは少数派らしい。
なんで?
試してみよう
・perl
//hello! print "Hello Wolrd!\n";
perlはダメぽ。
rti@debian:~/lang$ perl a.pl Bareword found where operator expected at a.pl line 3, near "//hello" (Missing operator before hello?) syntax error at a.pl line 3, near "//hello" Execution of a.pl aborted due to compilation errors.
・php
<? //Hello! echo "Hello World!\n"; ?>
php はOK。すばらしか。
rti@debian:~/lang$ php a.php Hello World! rti@debian:~/lang$
・python
//Hello print "Hello World!"
pythonはダメ。
rti@debian:~/lang$ python a.py File "a.py", line 2 //Hello ^ SyntaxError: invalid syntax
・ruby
//Hello puts("Hello, world!");
ruby もダメ。
rti@debian:~/lang$ ruby a.rb a.rb:1: unknown regexp options - Hll
・評価
一般的なサーバサイドなLL言語はPHP以外 // でコメントができませんでした。
なんで、私はPHPを使いますw。
それが理由かよっ!! っていわれそうですが、そうなんですが何かといいたい。
、、、なんで、みんな // コメントが嫌いなんでしょう。。。
Cのコメント技法がそんなに嫌いなんでしょうか。
さて、サーバサイドではまだあまり利用されていないマイナー未来の言語いってみよーwww
・lua
//Hello print "Hello, world!"
lua もだめぽ
rti@debian:~/lang$ lua a.lua lua: a.lua:2: unexpected symbol near `/'
'
・haskell
//hello main = interact $ const "Hello,World!\n"
haskellもだめぽ
rti@debian:~/lang$ ghc a.hs a.hs:2:0: parse error on input `//'
・Spider-Monkey(javascript / firefox のjavascriptエンジン)
//Hello print('hello, world');
javascriptなのでOK。
当然のように動作する!!!! すてき。
rti@debian:~/lang$ js a.js hello, world
どの言語もたいていC言語で開発しているわけぢゃないですか。
なのにC言語風のコメントを採用しないのは、そこまでC言語が嫌いなんでしょうか。
何? // は C++スタイルだろうがボケェェェェって?
それならこれでどうだ!!
ブロックコメント調査 /* */
・perl
/* hello! */ print "Hello Wolrd!\n";
perlはだめぽ
rti@debian:~/lang$ perl a.pl Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE hello! */ at a.pl line 2.
・php
<? /* Hello! */ echo "Hello World!\n"; ?>
phpはもちろん動作する!!
rti@debian:~/lang$ php a.php Hello World!
・python
/* Hello */ print "Hello World!"
pythonもだめぽ
rti@debian:~/lang$ python a.py File "a.py", line 2 /* Hello */ ^ SyntaxError: invalid syntax
・ruby
/* Hello */ puts("Hello, world!");
rubyはだめぽ
rti@debian:~/lang$ ruby a.rb a.rb:2: invalid regular expression; there's no previous pattern, to which '*' would define cardinality at 1: /* Hello */
・lua
/* Hello */ print "Hello, world!"
luaはだめぽ
rti@debian:~/lang$ lua a.lua lua: a.lua:2: unexpected symbol near `/'
・haskell
/* hello */ main = interact $ const "Hello,World!\n"
haskellだめぽ
rti@debian:~/lang$ ghc a.hs a.hs:2:0: parse error on input `/*'
・Spider-Monkey(javascript)
/* Hello */ print('hello, world');
javascript は、もちろん動作する。
rti@debian:~/lang$ js a.js hello, world
評価
と、言うわけで /* */ のコメントも php と javascript しか動作しませんでした。
やっぱり、LL言語や他の言語の作者はC言語嫌いなの?