かべ@SRA東北です。 (Followup注意)
ことの發端がfj.unixなので(いつの話だ)UNIXだけ別扱いしていたんですが、
そろそろ廢止してもいいかなと思ったので分類し直してあります。
新著: BIND8 FCL PGN
(ネタ切れ氣味)
ううむ、Slangて何種類かあるようです…最初からあったこれは何だ?IBM370用?
Referenceのないエントリに關しては「プログラム言語リスト」が便利です。
<URL:http://cuiwww.unige.ch/cgi-bin/langlist> (ジェノバ大學情報センター)
<!--============= 注釋文とは? =============-->
注釋 (ちゅうしゃく) comment. プログラマの覺え書きなどの記述。
プログラムの實行には何の影響も与えない。
(新版 情報處理ハンドブック、オーム社)
注釋としてremarkをあてる場合もありますが、commentが一般的な
用語のようです。
おそらく世界で最初のプログラム…エイダが解析機關用に書いたもの…にも
注釋は入っていたでしょうが、ソースの書かれている紙にそのまま書き入まれて
いたでしょうね。(自動織機のカードはどうだったんだろう)
ここで舉げているような「注釋を明示するための文法」が必要になってきたのは、
ソースプログラムをコンピューター上に蓄えるようになってからだと思われます。
入力方法として、初期のころはパンチカードと紙テープだったでしょう。
ここで注釋文の形として「行指向」「列指向」「自由形式」と分かれてきます。
(名稱は私が勝手につけました)
「行指向」…FORTRANに代表される、「一行全部が注釋」となっているもの。
パンチカードで使用された言語に良く見られます。
「列指向」…「81カラム目以降は注釋」のようなもの。同じくパンチカード系。
下の表には含めていませんが、昔のアセンブラや、
今では表計算ソフトのマクロなどに見られます。
「自由形式」…おそらく紙テープが使われるようになってから出てきた形式。
PascalやCのように、開きタグと閉じタグを組み合わせて使うもの。
行の途中に入れられる//なども、行末が閉じ記號だとしてしまえば
この部類に入るでしょう。
下の表ではこの三つを特に區別して載せていません。
(時期的には紙テープの方が先なので、パンチカードというより固定長レコード
と言った方が正しいのかも)
注釋というものは言語の構成上必須のものではないので、もとから
注釋文が書けない言語もあります。(COMIT,CAP-X,XEDITなど)
また、表計算ソフトのマクロや簡易言語といわれるものの中には
「コメント欄」が行每に獨立して設けられているものもあります。
こういったものは今回の表には載せようがありません。
言語に必須でないという理由からか、入門書•解說書のたぐいでも
注釋の文法についてしっかり書かれているものは少なく、最初の例題の所で
「……は注釋を表します」
としか書かれていないものが大部分です。マイナー/大昔の言語の資料は少ないので、
せっかく解說書を見つけても說明されている箇所を見つけるのに苦勞したり、
ひどい時は說明がないので揭載されている例題から拾い出してこなければ
ならなかったり、處理系のソースコードだけが手がかりだったりします。
仕樣書や文法書にはちゃんと書かれているので、こちらが入手できれば
あまり苦勞しないはずですが、もくじに「注釋……6」などとある
規格はそう多くないのでやっぱり搜し出すのに苦勞します。
コメントは通常の構文解析にうまくあてはまらない場合もあり、
プリプロセッサなどで除くようになっているとますます文法書には
出てこなくなることも…
あまり深く考えずに決められるせいか、言語作成者の趣味や育ちが現れるのも
注釋文の形式でしょう。
UNIX文化圈: # (csh)
DOS,Lisp: ; (アセンブラまで溯れば同じかな)
第五世代言語: % (Prologとか)
格式のISO: -- (Ada)
泥くさいC: /*...*/ (もとはPL/Iか)
オブジェクト指向: // (例外多數)
大抵の言語はソース自体のドキュメント性が不十分ですから、
コメントの書き方というのはまだまだ重要でしょうね。
入門書などでもこれについてしっかり述べてほしいものです。
<!--=============== comments-in-computer-languages ===============-->
### start
### 汛用言語 ###
BASIC REM ...
MS-BASIC '...
FullBASIC !...
Algol COMMENT ...;
Algol END ...;
C /*...*/
Pascal {...}
Pascal (*...*)
Modula-2 (*...*)
Modula-3 (*...*)
LISP ;...
CommonLISP #|...|#
FORTRAN66 C ...
FORTRAN77 * ...
FORTRAN90 ! ...
RATFOR #
REXX /*...*/
COBOL NOTE ...
COBOL *
FORTH (...)
PL/I /*...*/
Ada --...
LOGO ;...
*sh #...
sh : ... ヌルコマンド
awk #...
perl #...
tcl #... 多少場所を選ぶ
rc #... Plan-9 Shell
Edison "..."
Occam --...
SNOBOL *
CLU %...
Icon #...
Oberon (*...*)
BCPL /*...*/
BCPL |*...*|
BCPL \*...*\
BCPL //...
BCPL ||...
BCPL \\...
EXEC2 *...
COMAL REM ...
COMAL //...
RPG *...
PL/M /*...*/
COSCL --... CODASYL Common OS Command Language
Slang %... (SLANG?)
S-Lang %... space.mit.edu/%7Edavis/slang-doc.html
Mesa --...
Mesa --...--
Mesa <<...>>
Mesa <<...>> T.61 sup. の1オクテットの'<<', '>>'
OPS83 --...
Prolog %
Prolog /*...*/
KL1 %... 先端情報技術研究所 www.icot.or.jp/
KL1 /*...*/
M ;... (MUMPS)
Euclid {...}
Turing %...
Mind (...) 日本語Forth
Mind (...)
Mind ※...
Mind コンパイル抑止。 ... コンパイル抑止終り。
Scheme ;...
SCSH #!...!# Scheme Shell
Guile ;...
Guile1.0 #!...!#
Guile1.2 #!...\n!#\n
Lingo --...
Pinatubo REM ... Business BASIC エンジン
Pinatubo //...
Notes Formula Language REM "...";
LotusScript REM ...
LotusScript '...
LotusScript %REM ... %END REM
Pnuts //...
Pnuts /*...*/
マイクロスクリプト #...
EOL /*...*/
LOGOL comment ほげほげ.
は /*...*/ <1992Oct3.0...@tiny.or.jp>
は �*...*�
PIKT //... pikt.uchicago.edu/pikt/
PIKT /*...*/
## オブジェクト指向言語
Smalltalk "..."
Self "..."
Eiffel --...
Sather --...
Sather (*...*)
Python #...
Simula COMMENT ...;
Simula END ...;
Simula !...;
BETA (*...*)
Objective-C /*...*/
Objective-C //...
C++ /*...*/
C++ //...
Java /*...*/ (Oak)
Java //...
ECMAScript /*...*/ ECMA-262 (LiveScript,JavaScript,JScript)
ECMAScript //...
Telescript //...
Telescript /*...*/
Delphi //...
Delphi {...}
Delphi (*...*)
uLPC /*...*/ (Pike)
uLPC //...
uLPC #!...
ruby #...
OZ /*...*/
OZ //...
Slang /*...*/ QNX; www.cogent.ca/Slang/Slang.htm
Slang //... QNX
## 關數型言語
ML (*...*)
Caml (*...*)
APL ∩^H°
J NB.ほげほげ
Gofer --...
Haskell --...
### 特定用途向け言語 ###
## マクロ言語
cpp /*...*/
cpp #if 0 ... #endif
m4 #...
m4 dnl ...
autoconf dnl ...
make #...
Imakefile XCOMM ... Makefileに保存される
Imakefile /*...*/
cook /*...*/ www.canb.auug.org.au/~millerp/cook.html
TECO !...!
## 數式記述
Mathematica (*...*)
REDUCE COMMENT ...;
REDUCE %...
MATLAB %...
muSIMP %...%
Maple #...
Octave #...
Octave %...
gnuplot #...
bc /*...*/
## データベース關係
dBASEII NOTE ... REMARKは出力文
dBASEII *...
dBASEIII *...
dBASEIII &&...
SQL --...
PL/SQL --...
PL/SQL /*...*/
GPSS *...
S #...
SAS *...;
SPSS COMMENT ...
SPSS *...
SPSS /*...
SPSS /*...*/
AS *... (Application System) 出力される
AS /*... (Application System) 出力されない(內部注釋)
FCL ;... Felix Command Language
FCL c**... Felix Command Language;マクロ中のみ
## 電氣
SPICE *... (回路シミュレータ)
ABEL //...
Altera-HDL %...
Altera-HDL --...
Verilog-HDL //...
Verilog-HDL /*...*/
VHDL --...
## 文書記述
roff .\...
roff ."...
Scribe @Comment{...}
TeX %...
SGML --...--
SGML <![ IGNORE [...]]>
DSSSL ;... ISO/IEC 10179
CSS /*...*/ (Cascading Style Sheet)
HTML+ <COMMENT>...</COMMENT>
Texinfo @comment ...
Texinfo @c ...
Texinfo @ignore ... @end ignore
HDML <-- ... -->
HDML <!-- ... -->
## 仕樣記述
ASN.1 --...
ASN.1 --...--
IDL /*...*/ ISO/IEC 11578
IDL /*...*/ OMG CORBA
IDL //... OMG CORBA
OCL --... OMG UML Object Constraint Language
NDL (*...*)
DDL --... ISO/IEC 13719
IMCA -.ほげほげ.- ISO 8613-10
DXL --... JIS X 0130
XDR /*...*/
ABNF ;... RFC 822, RFC 2234
LOTOS (*...*) この中に仕樣を書いてもまちがいではない:P
UIL /*...*/ OSF Motif
CooL %... (Cooperation Language)
COOL @(...) IPSJ全國大會54-1K-05 (同名多數)
RPSL #... RFC 2280
CHILL /*...*/ CCITT HIgh Level Language (交換機)
## 幾何記述(へ
PostScript %...
ART \%...%\ Advanced Rendering Tool (XEROX)
METAFONT %...
VRML #...
xkbcomp #...
xkbcomp //...
## 音樂記述
SPICE ;... (MMLコンパイラ)
SPICE #MEMO "..." (MMLコンパイラ)
SPICE @{REM:...} (MMLコンパイラ)
SPICE #COMMENT ... #END-COMMENT (MMLコンパイラ)
Mudela %... (lilypond)
Mudela %{...%}
MML ;... (MML2MID)
MML /*...*/ (MML2MID)
abc %... www.gre.ac.uk/~c.walshaw/abc/
## いにしえ
TSS /*...*/
VSAM /*...*/
JCL //*...
JCL $COMM ...;
CDL #...
HPL /*...*/ Higher level Programming Language;アセンブラ行は有效
ATAC ;...
TSO /*...*/
OS-9 shell *...
## 仲間がいない
sed #... (ストリームエディタ)
ex "... (對話エディタ)
TVML //... (シナリオ記述)
綾織 //... (エージェント記述) ペルソナウェア
綾織 /*...*/
### 設定フフイル ###
UNIX設定フフイル群 #...
resolv.conf ;... SunOS4
resolv.conf #... AIX3,NEWSOS6
gated.conf /* ... */
gated.conf #...
BIND ;...
BIND #...
BIND8 #...
BIND8 /*...*/
BIND8 //...
/etc/system *... (SunOS5)
mh-format %;...
smb.conf #...
smb.conf ;...
### データフフイル ###
xrdb !...
rgb.txt !... 想定してないソフト多し
pbm,ppm,pgm,pnm #...
robots.txt #... Robot Exclusion Protocol
PNG "tEXtComment\0..." tEXtチャンク
GIF 0x21,0xFE,pstring("...") Comment Extension
LHa archive { 0x3f, "...", sizeof(next_header) }
ELF struct Elf32_Shdr comment_s = { ".comment", SHT_PROGBITS,0, 0, offset,size, 0,0,1,0 }; Elf_Data comment_d = { "...", ELF_T_BYTE, strlen("...")+1, offset, 1, version}; 一行で書けるか∼
Touchstone S parameter !...
PGN ;... Portable Game Notation
PGN {...} ftp://caissa.onenet.net:/pub/chess/PGN/Standard
### パソコン系 ###
HyperTalk --...
AppleScript --...
AppleScript (*...*)
*.BAT REM ヌルコマンド
*.BAT : ...
*.{ini,inf} ;...
*.adm ;... システムポリシーテンプレート
*.adm #if 0 ... #endif
LMHOSTS #... 予約語はダメ
PlayRite !!...
MIFES MIL ;...
Vz-macro ;
秀丸マクロ //...
QX MACRO '...
TTL ;... TeraTerm
GAME [0-9]+[^ ]...
TL/1 %...[\000-\037] (普通は行末まで)
MAI %...
Pilot R:...
Amiga E /* ... */
Amiga E ->
madoka #...
WebAuto.pad ;...
KiXtart ;...
DUKE3D.CFG ;... Duke Nukem 3D
GAME.CON /*...*/ Duke Nukem 3D
GAME.CON //... Duke Nukem 3D
### アセンブラ ###
IBM as *
IBM as macro .*
CASL ;...
Zilog as ;...
MASM ;
UNIX as /...
BE-OS as /...
MINIX as |...
OS-9 asm *...
Jasmin ;... Java Virtual Machine用
### その他 ###
フローチャート - - -[...
Internet Message Header field-value (...)
HTTP (...)
端末 ...kill (^X,^U,@など)
### 書けない ;_; ###
XEDIT
COMIT
dc 「コメントを捨てるための變數」が必要
CAP-X
KQML
/etc/passwd
tags ctagsで作るやつ
### 反則 :p ###
END, exit, ^Z などの後
### end
------------------------------------------------------------------------------
かべ@sra-tohoku.co.jp VEGA Systems MCMXCI
「自分はレーサーだっていうのかい? たいしたことないじゃないか。」
------------------------------------------------------------------------------