comments-in-computer-languages v1.25

6 views
Skip to first unread message

ka...@sra-tohoku.co.jp

unread,
Nov 30, 2003, 10:46:29 PM11/30/03
to
Archive-name: comments-in-computer-languages
Version: $Revision: 1.25 $
Last-modified: $Date: 2003-12-01 03:45:50+09 $
X-RCSId: $Id: comments-comp,v 1.25 2003-12-01 03:45:50+09 kabe Exp $

かべ@SRA東北

新着: Cafe IP_Secondary_Addresses dig m4 Gamma UML Brainf*ck JCL ActionScript

Referenceのないエントリに関しては、こんな所を漁れば何かわかるかも…

「プログラム言語リスト」(ジェノバ大学情報センター)
<URL:http://cui.unige.ch/OSG/info/Langlist/>
「Linux科学技術アプリケーション」(Kachina Technologies Inc.)
<URL:http://www.KachinaTech.COM/SAL/sal.html>
「棚にはビールが99本」
<URL:http://core.federated.com/~jim/99/>


<!--============= 注釈文とは? =============-->

注釈 (ちゅうしゃく) 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 *
COBOL /... もれなく改ページつき
FORTH (...)
PL/I /*...*/
Ada --...
LOGO ;...

*sh #...
sh : ... ヌルコマンド
awk #...
perl #...
perl5 =pod ... =cut
perl5-regexp (?#...)
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 /*...*/
Erlang %... www.erlang.org/
KL1 %... 先端情報技術研究所 www.klic.org/
KL1 /*...*/
M ;... (MUMPS)
Euclid {...}
Turing %...
Mind (...) 日本語Forth
Mind (...)
Mind ※...
Mind コンパイル抑止。 ... コンパイル抑止終り。
var'aq (*...*) www.geocities.com/connorbd/varaq/
Scheme ;...
SCSH #!...!# Scheme Shell
Guile ;...
Guile1.0 #!...!#
Guile1.2 #!...\n!#\n
Jess ;... herzberg.ca.sandia.gov/jess/
REBOL comment ... www.rebol.com/
REBOL ;...
WebL //... www.research.compaq.com/SRC/WebL/
WebL /*...*/
Lingo --...
Pinatubo REM ... Business BASIC エンジン
Pinatubo //...
Notes Formula Language REM "...";
LotusScript REM ...
LotusScript '...
LotusScript %REM ... %END REM
MEL //... Maya Embedded Language
CAL ;... Cakewalk Application Language
Pnuts //...
Pnuts /*...*/
EOL /*...*/
LOGOL comment ほげほげ.
PIKT //... pikt.uchicago.edu/pikt/
PIKT /*...*/
WMLScript //...
WMLScript /*...*/
PHP /*...*/
PHP //...
PHP #...
EASEL /*...*/ www.research.att.com/sw/tools/reuse/
EASEL //...
EASEL }... Algolと同じ
PocketC //... www.orbworks.com/PalmOS/docs/
PocketC /*...*/
Lua --... www.tecgraf.puc-rio.br/lua/
Lua #...
clef //... ecswww.baylor.edu/faculty/sturgill/class/theory/syllabus.html
Algae #... algae.sourceforge.net

INTERCAL PLEASE NOTE ... 単なる熟語
Brainf*ck [^][><+-,.] www.catseye.mb.ca/esoteric/bf/
*W ||...!! www.catseye.mb.ca/esoteric/starw/
ILLGOL NB ... www.catseye.mb.ca/esoteric/illgol/
Befunge-96 ;... www.mines.edu/students/b/bolmstea/mtfi/96.html
Funge-97 ;...;
intbigot #... home.cc.umanitoba.ca/~umpenne5/intbigot/

マイクロスクリプト #...
ひまわり {...} www.text2music.com/tools/himawari/doc/hajimete/
ひまわり ’...
は /*...*/ news:1992Oct3.0...@tiny.or.jp
は /*...*/

## オブジェクト指向言語

Smalltalk "..."
Self "..."
Eiffel --...
Sather --...
Sather (*...*)
Python #...
Python """ ... """ docstring;単なる複数行文字定数
Simula COMMENT ...;
Simula END ...;
Simula !...;
BETA (*...*)
Objective-C /*...*/
Objective-C //...
C++ /*...*/
C++ //...
Java /*...*/ (Oak)
Java //...
ECMAScript /*...*/ ECMA-262 (LiveScript,JavaScript,JScript,JellyScript)
ECMAScript //...
ActionScript //... www.macromedia.com/support/documentation/en/flash/
ActionScript /*...*/
Telescript //...
Telescript /*...*/
Delphi //...
Delphi {...}
Delphi (*...*)
uLPC /*...*/ (Pike)
uLPC //...
uLPC #!...
ruby #...
OZ /*...*/
OZ //...
Slang /*...*/ QNX; www.cogent.ca/Slang/Slang.htm
Slang //... QNX
Gamma /*...*/ developers.cogentrts.com/cogent/cogentdocs/gm-comments.html
Gamma //...
ferite /*...*/ ferite.org
ferite //...
G言語 % ... Wnn,GMW,GUIDE,OIMO...
MOO /*...*/ www.moo.mud.org/
MOO "..."; DBに残る
ドリトル //... www.logob.com/dolittle/

## 関数型言語
ML (*...*)
Caml (*...*)
APL ∩^H゜
J NB.ほげほげ
Gofer --...
Haskell --...

### 特定用途向け言語 ###

## マクロ言語
cpp /*...*/
cpp #if 0 ... #endif
m4 #...
m4 dnl ...
m4 divert(-1) ... divert
autoconf dnl ...
make #...
Imakefile XCOMM ... Makefileに保存される
Imakefile /*...*/
cook /*...*/ www.canb.auug.org.au/~millerp/cook.html
GSL .-ほげほげ www.imatix.com/html/gslgen/
TECO !...!

## 数式記述
Mathematica (*...*)
REDUCE COMMENT ...;
REDUCE %...
MATLAB %...
muSIMP %...%
Maple #...
Scilab //... www-rocq.inria.fr/scilab/
Octave #...
Octave %...
gnuplot #...
Topaz #... (Gem) hp.vector.co.jp/authors/VA007663/topaz/
Topaz [#/;%"]... データのみ
bc /*...*/
Cafe #... www.tksa.gr.jp/king/Software/Cafe/Cafe.html

## データベース関係
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;マクロ中のみ
dig %...

## 電気
SPICE *... (回路シミュレータ)
ABEL //...
ABEL "..."
ABEL "...
Altera-HDL %...
Altera-HDL --...
Verilog-HDL //...
Verilog-HDL /*...*/
VHDL --...
Gerber G04...* RS-274D
Gerber *0...* RS-274X,AMマクロ中のみ

Touchstone S parameter !...

## 文書記述
roff .\...
roff ."...
Scribe @Comment{...}
TeX %...
SGML --...--
SGML <![ IGNORE [...]]>
Texinfo @comment ...
Texinfo @c ...
Texinfo @ignore ... @end ignore
Lout #... ftp.cs.su.oz.au/jeff/lout/
pod =for nothing\n... perlpod(1)
pod =begin nothing ... =end
Yodl COMMENT(...)
MML <Comment ...> www.softline.com/softline/mml/
MML .. ほげほげ www.metamage.com/proj/mml.html
Curl ||... www.curl.com/
Curl |# ... #|
Curl |tag# ... #tag|
MagicPoint #... www.mew.org/MagicPoint/

HTML+ <COMMENT>...</COMMENT>
HDML <-- ... -->
HDML <!-- ... -->
MML <!...> mobidy.mag.keio.ac.jp/mml/page7.html
AscToHTM $_$_BEGIN_IGNORE ... $_$_END_IGNORE
AscToHTM [[HTML_COMMENT ...]] www.jafsoft.com/asctohtm/
WML # ... Website META Lang., www.engelschall.com/sw/wml/
heitml //... www.radpage.com/heitml2.0/
heitml /*...*/

DSSSL ;... ISO/IEC 10179
CSS /*...*/ (Cascading Style Sheet)

## 仕様記述
ASN.1 --...
ASN.1 --...--
ASN.1 /*...*/ ITU-T X.680 Corrigendum 4 (2001/03)
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 (*...*) ISO 8807
UIL /*...*/ OSF Motif
RPSL #... RFC 2280
ASL //... ACPI Source Language
ASL /*...*/ ACPI Source Language
TDF text #... www.TenDRA.org/docs/tnc/#AEN100

yacc /*...*/
Rie /*...*/
Rie //...
LMSE #... www.cs.ubc.ca/spider/murphy/software/lsme/

CHILL /*...*/ CCITT HIgh Level Language (交換機)
Agent Schema #... Solstice Enterprise Manager

CooL %... (Cooperation Language)
COOL @(...) IPSJ全国大会54-1K-05 (同名多数)

## ベクタ画像記述
PIC #... pic(1)
PostScript %...
ART \%...%\ Advanced Rendering Tool (XEROX)
METAFONT %...
MetaPost %...
VRML #...
DXF 999\n...\n AutoCAD
xkbcomp #...
xkbcomp //...

## 音楽記述
SPICE ;... (MMLコンパイラ)
SPICE #MEMO "..." (MMLコンパイラ)
SPICE @{REM:...} (MMLコンパイラ)
SPICE #COMMENT ... #END-COMMENT (MMLコンパイラ)
ZMS MML /... www.z-z-z.gr.jp/zmusic/
ZMS MML .COMMENT ... コンパイル時出力
ZMS MML v3 [COMMENT ...] ZMD埋め込み
MASE MML #... tokyo.cool.ne.jp/shica/
PMML /*...*/ cglsun4.u-aizu.ac.jp/pmml/jman/pmml_5.html
PMML //...
MUC MML ;... page.freett.com/mine0/compiler.html
MUC MML /*...*/...
MUC MML /E\n...<EOF>
MIO MML ;... www.geocities.co.jp/Playtown/4370/miodrv0.html
MIO MML *...
MML2MID ;... www.platz.or.jp/~mml2mid/
MML2MID /*...*/
kfm MML {...} rd.vector.co.jp/soft/win95/art/se096062.html
kfm MML ;...
kfm MML _skipon ... _skipoff
MSL /*...*/ rd.vector.co.jp/soft/dos/art/se005103.html
MSL //...
Muse ;... village.infoweb.or.jp/~atomic/soft/linkbar.htm
Muse !...! 入れ子可
Muse <全角文字>
fpd MML ;... www.platz.or.jp/~fpd/
fpd MML / ... *
みかんMML C:...; www.vector.co.jp/soft/dos/art/se018428.html
みかんMML ::...
みかんMML ::...::
FMP MML [^']... www.iizuka.edu.isc.kyutech.ac.jp/free/taka-p/dtm/fmp/
FMP MML ;...;
FMP MML ;...
Myu-don MML ;... www1.odn.ne.jp/~cad00240/plab/Myudon/Manual/
Annex MIDI //... www.win.or.jp/~annex/anxmid/anxmid.html
Annex MIDI #off ... #on
MLD Creator MML '... www.naka-net.com/SOFT/MLDC/mldc.html
MML2MMF C... オブジェクトに残す www.music.ne.jp/~puc/
PS-PLAYER MML //... www.asahi-net.or.jp/~wj3a-fji/phs/program/
PS-PLAYER MML /*...*/
PlayMusWin32 ;... neko.mimi.gr.jp/~kcamnu/product/pmw/manual/
ZMMLC MML %... www1.linkclub.or.jp/~zhidao/zclef/zmmlc.html
MSV MML //... f3.aaacafe.ne.jp/~souten/msvtool.htm
MSV MML /*...
hcmmlj ;... www.ne.jp/asahi/myu/doi-hiro/wwitch/index.html
UltraMarine MML ;... www7.big.or.jp/~suppoko/ultramarine/index.html
UltraMarine MML /*...\n*/
Mdrv2System MML ;... home4.highway.ne.jp/regulus/mdrv2/
AWG ;... www.bekkoame.ne.jp/ha/fujiwara/awg/awgtop.html
AWG /*...*/
xmml #... www.geocities.com/card_captor/xmml2.html

BMS [^#]... BM98シーケンス記述
BXC /... www20.cds.ne.jp/~yugen/etc/#bxc

# MMLとゆーのは日本語らしく、向こうの人はnotation languageとか言ったりする
Mudela %... (lilypond)
Mudela %{...%}
abc %... www.gre.ac.uk/~c.walshaw/abc/

## ゲーム記述
AGI LOGIC //... members.ozemail.com.au/~ptrkelly/agi/specs/
AGI LOGIC [...
AGI LOGIC /*...*/
jacl ;... jacl.sourceforge.net
jacl #...
GDL ;... sources.redhat.com/xconq/manual/xcdesign_1.html
GDL #|...|#
NScripter ;... www2.osk.3web.ne.jp/~naokikun/

## IRCマクロ記述
ChocoaScript ;... www.labs.fujitsu.com/free/chocoa/
mIRC ;... www.mIRC.com/faq7.html#section7
DAVIS ##... davis.sourceforge.net

## いにしえ
TSS /*...*/
VSAM /*...*/
JCL //*...
JCL /* ... (DD終了デリミタ)
JCL $COMM ...;
JCL //COMMENT DD DATA,DLM='$$' ... $$
CDL #...
HPL /*...*/ Higher level Programming Language;アセンブラ行は有効
ATAC ;...
TSO /*...*/
OS-9 shell *...

## 仲間がいない
sed #... (ストリームエディタ)
ex "... (対話エディタ)
GNU ld script /*...*/ (リンクエディタ)
TVML //... (シナリオ記述)
綾織 //... (エージェント記述) ペルソナウェア
綾織 /*...*/
CASL /*...*/ (偽パケット生成)
CASL //... Custom Audit Scripting Language
NASL #... (ネットワークスキャナ) nessus.org
Karel #... (プログラミング学習用) karel.sourceforge.net
SRL #... (パケット計数) RFC2723
Combiner Language #... (画像加工) giga.cps.unizar.es/prman/
Minc /*...*/ (波形合成) www.music.princeton.edu/winham/cmix.html
LED Sign Scripting Language !!... (電光掲示板制御) www.bcpl.net/~jgrunewa/LEDSign/temp/scriptdoc.html

### 設定ファイル ###

UNIX設定ファイル群 #...
resolv.conf ;... SunOS4
resolv.conf #... AIX3,NEWSOS6
gated.conf /* ... */
gated.conf #...
BIND ;...
BIND #...
BIND8 #...
BIND8 /*...*/
BIND8 //...
/etc/system *... (SunOS5)
/etc/acct/holidays *...
sendmail.cf #...
sendmail.cf R<LHS>^I<RHS>^I...
mh-format %;...
smb.conf #...
smb.conf ;...
Wnn設定ファイル群 ;...
robots.txt #... Robot Exclusion Protocol

Ciscoの設定ファイル !... NVRAMには残らない
CPL ;... Content Policy Language bluecoat.com
CPL regex (?#...)
Sieve #... RFC3028
Sieve /*...*/

### データファイル ###

unittab /... units(1) (GNU unitsでは #...)

xrdb !...
rgb.txt !... 想定してないソフト多し
BDF COMMENT ...

pbm,ppm,pgm,pnm #...
PNG "tEXtComment\0..." tEXtチャンク
GIF 0x21,0xFE,pstring("...") Comment Extension
JPEG(JFIF) $fffe,(short)strlen("..."),"..."
PIC PIC...\x1a...\0

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}; 一行で書けるか~

PGN ;... Portable Game Notation
PGN {...} ftp://caissa.onenet.net:/pub/chess/PGN/Standard

Unicode NamesList ;...

### パソコン系 ###

HyperTalk --...
AppleScript --...
AppleScript (*...*)
MPW Shell #...
MPW Rez /*...*/
MPW Rez //...
IP Secondary Addresses ;... Open Transport 1.3
*.BAT REM ヌルコマンド
*.BAT : ...
*.{ini,inf} ;...
*.adm ;... システムポリシーテンプレート
*.adm #if 0 ... #endif
LMHOSTS #... 予約語はダメ
Dial-Up Scripting Command Language ;... SCRIPT.DOC
GUI INF Script Language ;... NTDDK A.3.3
txtsetup.oem ;... NTDDK A.2
txtsetup.oem #...
PlayRite !!...
MIFES MIL ;...
Vz-macro ;
秀丸マクロ //...
QX MACRO '...
TTL ;... TeraTerm
GAME [0-9]+[^ ]...
TL/1 %...[\000-\037] (普通は行末まで)
MAI %...
Pilot R:...
N *... 何しまんの
Amiga E /* ... */
Amiga E ->
madoka #...
WebAuto.pad ;...
Kpost掲示板パラメータ ##...
KiXtart ;...
FXL //... free01.plala.or.jp/~yfuji/
HSP ;... www.onionsoft.net/hsp/
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用
ASKA /*...*/ www.imasy.or.jp/~kawai/osask/
ASKA //...
aslc86k #... mc.pp.se/dc/
aslc86k ;...

### その他 ###

Internet Message Header field-value (...)
SMTP NOOP ...
HTTP (...)
テレタイプ端末 ...kill (^X,^U,@など)
フローチャート - - -[...

+-----
UML - - -| L\ 折り紙
| ... |
+-----+

### 書けない ;_; ###

XEDIT
COMIT
dc 「コメントを捨てるための変数」が必要
CAP-X CASLは書ける
KQML
/etc/passwd
tags ctagsで作るやつ
lex lex自身は持ってないような
RCL Request Condition Language; マニュアルには記述なし

### 反則 :p ###

END, exit, ^Z などの後

### end


### LICENSE
1) Redistribution without modification, including the title(Subject:),
version, author and the body, is unlimited.
2) Redistribution with modification (excluding those needed for transmission
or natural language translation) is allowed provided that a) the author
and the original version number is credited, b) it is not distributed
under the name "comments-in-computer-languages", and c) the modified
product is distributed under the identical license to the original.
3) This document is provided "as is" and author is not liable for any, but not
limited to, defects, unsuitabilities or damages resulting from using
or referencing this document.
--
kabe

Reply all
Reply to author
Forward
0 new messages