Porovnání programovacích jazyků (syntaxe) - Comparison of programming languages (syntax)

Toto srovnání programovací jazyky porovnává vlastnosti jazyková syntaxe (formát) pro více než 50 počítačových programovacích jazyků.

Výrazy

Programovací jazyk výrazy lze obecně rozdělit do čtyř struktur syntaxe:

prefixový zápis
  • Lisp (* (+ 2 3) (kromě 4 5))
infixová notace
přípona, postfix nebo Reverzní polská notace
matematický zápis
  • TUTOR (2 + 3)(45) $$ poznámka implicitní operátor násobení

Prohlášení

Programovací jazyk prohlášení obvykle mají konvence pro:

  • oddělovače výpisů;
  • terminátory prohlášení; a
  • pokračování řádku

Oddělovač příkazů se používá k vymezení hranic mezi dvěma samostatnými příkazy. Terminátor příkazu se používá k vymezení konce jednotlivého příkazu. Jazyky, které interpretují konec řádku jako konec příkazu, se nazývají „řádkově orientované“ jazyky.

„Pokračování řádku“ je konvence v řádkově orientovaných jazycích, kde by znak nového řádku mohl být nesprávně interpretován jako zakončení příkazu. V takových jazycích umožňuje jednomu příkazu překlenout více než jen jeden řádek.

JazykOddělovač-terminátor prohlášeníSekundární oddělovač[1]
ABAPobdobí oddělené
Adastředník ukončen
ALGOLoddělené středníkem
ALGOL 68oddělené středníkem a čárkou[2]
APLnový řádek ukončen oddělené
AppleScriptnový řádek ukončen
AutoHotkeynový řádek ukončen
ZÁKLADNÍnový řádek ukončendvojtečka oddělena
Vypískatnový řádek ukončen
Cstředník ukončuje příkazyčárka odděluje výrazy
C ++středník ukončuje příkazyčárka odděluje výrazy
C#středník ukončen
COBOLoddělené mezerami, někdy odděleny tečkami, volitelně odděleny čárkami a středníky.
Kobranový řádek ukončen
CoffeeScriptnový řádek ukončen
CSSstředník oddělena
Dstředník ukončen
Eiffelovanový řádek ukončenstředník
Erlangoddělené tlusté střevo, období ukončeno
F#nový řádek ukončenstředník
Fortrannový řádek ukončenstředník
Forthstředníky ukončují definice slov
GFA BASICnový řádek ukončen
Jítoddělené středníkem (vloženo překladačem)
Haskell (v notaci)nový řádek oddělen
Haskell (v notaci, když jsou použity závorky)oddělené středníkem
Jávastředník ukončen
JavaScriptoddělené středníkem (ale někdy implicitně vložené na nové řádky)
Kotlinoddělené středníkem (ale někdy implicitně vložené na nové řádky)
Luaoddělené mezerami (volitelný středník)
Mathematicaoddělené středníkem
MATLABnový řádek ukončenstředník nebo čárka[3]
Objekt Pascal (Delphi )oddělené středníkem
Cíl-Cstředník ukončen
OCamloddělené středníkem
Pascalstředník oddělena
Perloddělené středníkem
PHPstředník ukončen
Vyberte základnínový řádek ukončenoddělené středníkem
PowerShellnový řádek ukončenoddělené středníkem
Prologoddělené čárkou (spojka), oddělené středníkem (disjunkce), tečka ukončena (klauzule)
Krajtanový řádek ukončenstředník
Rakuoddělené středníkem
Červenéoddělené mezery
Rubínnový řádek ukončenstředník
Rezstředník ukončuje příkazyčárka odděluje výrazy
Scalanový řádek ukončen (středník volitelný)středník
7. semenooddělené středníkem (ukončení středníkem je povoleno)
Simulaoddělené středníkem
Slangoddělené středníkem
Pokecobdobí oddělené
Standardní MLoddělené středníkem
Rychlýoddělené středníkem (vloženo překladačem)
Visual Basicnový řádek ukončendvojtečka oddělena
Visual Basic .NETnový řádek ukončendvojtečka oddělena
Wolfram jazykoddělené středníkem
Xojonový řádek ukončen
JazykOddělovač-terminátor prohlášeníSekundární oddělovač[1]

Pokračování řádku

Pokračování řádku se obvykle provádí jako součást lexikální analýza: nový řádek obvykle vede k přidání tokenu do proudu tokenu, pokud není detekováno pokračování řádku.

Mezery - Jazyky, které nepotřebují pokračování
  • Ada - Řádky končí středníkem
  • C# - Řádky končí středníkem
  • JavaScript - Řádky končí středníkem (což lze odvodit)
  • Lua
  • OCaml
Ampersand jako poslední znak řádku
Obrácené lomítko jako poslední znak řádku
Backtick jako poslední znak řádku
Pomlčka jako poslední znak řádku
Podtržítko jako poslední znak řádku
Elipsa (jako tři tečky - ne jeden speciální znak)
  • MATLAB: Token se třemi tečkami nemusí být posledními znaky na řádku, ale všechny následující znaky budou ignorovány.[6] (V podstatě začíná komentář, který se rozšiřuje.) přes (tj. včetně) prvního následujícího znaku nového řádku. Porovnejte to s vloženým komentářem, který se rozšiřuje dokud první následující nový řádek.)
Oddělovač čárky jako poslední znak řádku
  • Ruby (komentář může následovat oddělovač)
Oddělovač levé závorky jako poslední znak řádku
Operátor jako poslední objekt řádku
  • Ruby (operátor může sledovat komentář)
Operátor jako první znak pokračování řádku
  • AutoHotkey: Libovolné operátory výrazů kromě ++ a -, stejně jako čárka nebo tečka[8]
Obrácené lomítko jako první znak pokračování řádku
Nějaká forma vložený komentář slouží jako pokračování řádku
Pozice postavy
  • Fortran 77: Řádek bez komentářů je pokračováním předchozího řádku bez komentářů, pokud se ve sloupci 6 objeví jakýkoli znak bez mezer. V řádcích komentářů nelze pokračovat.
  • COBOL: Řetězcové konstanty mohou pokračovat tak, že původní řetězec v klauzuli PICTURE neukončíte ', poté vložte a - ve sloupci 7 (stejná poloha jako * pro komentář se používá.)
  • TUTOR: Řádky začínající tabulátorem (po každém odsazení vyžadovaném kontextem) pokračují v předchozím příkazu.
[Konec a začátek] pomocí běžných uvozovek
  • C a C ++ preprocesor: Řetězec je normálně ukončen a pokračuje zahájením nabídky na dalším řádku.

Knihovny

Na import A knihovna je způsob, jak číst externí, případně kompilované rutiny, programy nebo balíčky. Importy lze klasifikovat podle úrovně (modul, balíček, třída, procedura, ...) a podle syntaxe (název směrnice, atributy, ...)

Import souborů


Import balíčku


Import třídy
  • z modul import třída Krajta
  • import třída Sokol
  • import balík.třída Jáva, MATLAB, kotlin
  • import třída z "modname";, JavaScript
  • import {třída} z "modname";, JavaScript
  • import {třída tak jako altname} z "modname";JavaScript
  • import balík.třída, Scala
  • import balík.{ třída1 => alternativní jméno, třída2 }, Scala
  • import balík._Scala
  • použití NamespaceClassName;, PHP
  • použití NamespaceClassName jako AliasName; PHP
Import procedury / funkce
  • z modul import funkce Krajta:
  • import balíček.modul : symbol;, D:
  • import balíček.modul : altsymbolname = symbol; D:
  • import Modul (funkce) Haskell:
  • import funkce z "modname";, JavaScript:
  • import {funkce} z "modname";, JavaScript:
  • import {funkce tak jako altname} z "modname";JavaScript:
  • import balík.funkce MATLAB:
  • import balík.třída.funkce, Scala:
  • import balík.třída.{ funkce => alternativní jméno, další funkce }Scala:
  • použijte modul („symbol“);Perl:
  • použít funkci Namespacefunction_name;, PHP:
  • použití Namespacefunction_name jako function_alias_name; PHP:
  • použití modul::submodul::symbol;, Rez:
  • použití modul::submodul::{symbol1, symbol2};, Rez:
  • použití modul::submodul::symbol tak jako altname; Rez:


Konstantní import
  • použijte konst Obor názvů CONST_NAME; PHP

Výše uvedená tvrzení lze také klasifikovat podle toho, zda se jedná o syntaktické pohodlí (umožňující, aby věci byly označovány kratším názvem, ale stále je lze označovat nějakým plně kvalifikovaným názvem bez importu), nebo zda jsou skutečně vyžadovány pro přístup kód (bez kterého není možné získat přístup ke kódu, a to ani s plně kvalifikovanými jmény).

Syntaktické pohodlí
Vyžadováno pro přístupový kód

Bloky

A blok je zápis pro skupinu dvou nebo více příkazů, výrazů nebo jiných jednotek kódu, které spolu souvisejí tak, aby obsahovaly jeden celek.

Šle (také složené závorky) { ... }
Závorky ( ... )
Hranaté závorky [ ... ]
  • Pokec (bloky jsou objekty první třídy. aka uzávěry)
začít ... konec
dělat ... konec
dělat ... Hotovo
dělat ... konec
  • Lua, Rubín (předat bloky jako argumenty, pro smyčka), 7. semeno (uzavírá těla smyčky mezi dělat a konec)
X ... konec (např. -li ... konec):
  • Rubín (-li, zatímco, dokud, def, třída, modul prohlášení), OCaml (pro & zatímco smyčky), MATLAB (-li & přepínač podmíněné, pro & zatímco smyčky, Snaž se doložka, balík, třída, vlastnosti, metody, Události, & funkce bloky), Lua (pak / jiný & funkce)
(začít ...)
(progn ...)
(dělat ...)
Odsazení
Ostatní

Komentáře

Komentáře lze klasifikovat podle:

  • styl (vložený / blok)
  • analyzovat pravidla (ignorovaná / interpolovaná / uložená v paměti)
  • rekurzivita (vnořitelná / nevnořitelná)
  • používá (docstrings / vyhoditelné komentáře / jiné)

Vložené komentáře

Vložené komentáře jsou obecně ty, které používají a nový řádek znak označující konec komentáře a libovolný oddělovač nebo posloupnost žetony k označení začátku komentáře.

Příklady:

SymbolJazyky
CFortran I do Fortran 77 (C ve sloupci 1)
REMZÁKLADNÍ, Dávkové soubory
::Dávkové soubory, COMMAND.COM, cmd.exe
Pozn.J; z (historicky) běžné zkratky Nota bene, latinka pro „nota dobře“.
APL; mnemotechnická pomůcka je glyf (jot overstruck with shoe-down) připomíná stolní lampu, a proto „osvětluje“ výše uvedené.
#Bourneova skořápka a další UNIX skořápky, Kobra, Perl, Krajta, Rubín, 7. semeno, Windows PowerShell, PHP, R, Udělat, Javor, Elixír, Nim[10]
%TeX, Prolog, MATLAB,[11] Erlang, Slang, Vizuální prolog
//ActionScript, C (C99), C ++, C#, D, F#, Jít, Jáva, JavaScript, Kotlin, Objekt Pascal (Delphi), Cíl-C, PHP, Rez, Scala, SASS, Rychlý, Xojo
'Opice, Visual Basic, VBScript, Malý základní, Gambas, Xojo
!Fortran, Basic Plus, Informovat, Vyberte základní
;Sestava x86, AutoHotkey, AutoIt, Lisp, Společný Lisp, Clojure, Rebol, Červené, Systém
--Euforie, Haskell, SQL, Ada, AppleScript, Eiffelova, Lua, VHDL, SGML, PureScript
*Assembler S / 360 (* ve sloupci 1), COBOL I do COBOL 85, TLAPKA, Fortran IV až Fortran 77 (* ve sloupci 1), Vyberte základní
||Kučera
"Vimscript, ABAP
Forth
*>COBOL 90

Blokovat komentáře

Blokové komentáře jsou obecně ty, které používají oddělovač k označení začátku komentáře a další oddělovač k označení konce komentáře. V tomto kontextu, mezery a nový řádek znaky se nepočítají jako oddělovače.

Příklady:

SymbolJazyky
komentář ~ ;ALGOL 60, SIMULA
¢ ~ ¢,
# ~ #, co ~ co,
komentář ~ komentář
ALGOL 68[12][13]
/* ~ */ActionScript, AutoHotkey, C, C ++, C #, D,[14] Jít, Jáva, JavaScript, kotlin, Cíl-C, PHP, PL / I., Prolog, Rexx, Rez (lze vnořit), Scala (lze vnořit), SAS, SASS, SQL, Swift (lze vnořit), Vizuální prolog, CSS
#cs ~ #ceAutoIt[15]
/+ ~ +/D (lze vnořit)[14]
/# ~ #/Kobra (lze vnořit)
<# ~ #>Powershell
<!-- ~ -->HTML, XML
= začít ~ = střihPerl
#`( ~ )Raku (znaky v závorkách mohou být (), <>, {}, [], libovolné znaky Unicode se zrcadlením BiDi nebo znaky Unicode s vlastnostmi Ps / Pe / Pi / Pf)
= začít ~ = konecRubín
#<ŠTÍTEK > ~ #</ŠTÍTEK >, #stop ~ EOF,
#iffalse ~ #endif, # jestli je to pravda ~ #endif,
#if false ~ #endif, #if! pravda ~ #endif
Slang[16]
{- ~ -}Haskell (lze vnořit)
(* ~ *)Delphi, ML, Mathematica, Object Pascal, Pascal, 7. semeno, Jablko, OCaml (lze vnořit), standardní ML (lze vnořit), javor, Newspeak, F#
{ ~ }Delphi, Object Pascal, Pascal, Červené
{# ~ #}Nunjucks, Větvička
{{! ~ }}Knír, Řídítka
{{!-- ~ --}}Řídítka (nelze vnořit, ale mohou obsahovat) {{ a }})
|# ~ #|Kučera
%{ ~ %}MATLAB[11] (symboly musí být na samostatném řádku)
#| ~ |#Lisp, Systém, Raketa (lze vnořit do všech tří).
#[ ~ ]#Nim[17]
--[[ ~ ]],
--[=[ ~ ]=],
--[=...=[ ~ ]=...=]
Lua (závorky mohou mít libovolný počet odpovídajících = znaků; mohou být vnořeny do neodpovídajících oddělovačů)
" ~ "Pokec
(komentář ~ )Clojure

Unikátní varianty

Fortran
  • Odsazení řádků do Fortran 66/77 je významný. Skutečný výpis je ve sloupcích 7 až 72 řádku. Jakýkoli znak bez mezery ve sloupci 6 naznačuje, že tento řádek je pokračováním předchozího řádku. A 'C„ve sloupci 1 označuje, že celý tento řádek je komentář. Sloupce 1 až 5 mohou obsahovat číslo, které slouží jako štítek. Sloupce 73, i když 80, jsou ignorovány a mohou být použity pro komentáře; v dny děrných štítků, tyto sloupce často obsahovaly pořadové číslo, takže balíček karet mohl být tříděn do správného pořadí, pokud někdo omylem karty odhodil. Fortran 90 odstranil potřebu pravidla odsazení a přidal vložené komentáře pomocí ! znak jako oddělovač komentářů.
COBOL
  • V kódu s pevným formátem je řádkové odsazení významné. Sloupce 1–6 a sloupce od 73 dále jsou ignorovány. Pokud * nebo / je ve sloupci 7, pak je tento řádek komentářem. Do COBOL 2002, pokud a D nebo d byl ve sloupci 7, definoval by „ladicí řádek“, který by byl ignorován, pokud by kompilátor nedostal pokyn k jeho kompilaci.
Kobra
  • Cobra podporuje blokování komentářů pomocí „/# ... #/„což je jako“/* ... */"často se nachází v jazycích založených na jazyce C, ale se dvěma rozdíly # znak je znovu použit z formuláře pro jednořádkový komentář "# ... “a komentáře k bloku lze vnořit, což je vhodné pro komentování velkých bloků kódu.
Kučera
  • Curl podporuje blokové komentáře pomocí uživatelem definovaných značek jako v | foo # ... #foo |.
Lua
  • Stejně jako nezpracované řetězce, mezi hranatými závorkami může být libovolný počet znaků rovná se, za předpokladu, že otevírací i zavírací značky mají odpovídající počet znaků rovná se; to umožňuje vnoření, pokud vnořené blokové komentáře / nezpracované řetězce používají jiný počet znaménka rovná se než jejich přiložený komentář: - [[komentář - [= [vnořený komentář] =]]]. Lua zahodí první nový řádek (pokud je přítomen), který přímo navazuje na úvodní značku.
Perl
  • Blokové komentáře v Perlu jsou považovány za součást dokumentace a jsou pojmenovány Prostá stará dokumentace (LUSK). Technicky Perl nemá konvenci pro zahrnutí blokových komentářů do zdrojového kódu, ale POD se běžně používá jako řešení.
PHP
  • PHP podporuje standardní komentáře ve stylu C / C ++, ale podporuje také styl Perl.
Krajta
  • Použití trojitých uvozovek k komentování řádků zdroje ve skutečnosti netvoří komentář.[18] Z uzavřeného textu se stane řetězcový literál, který Python obvykle ignoruje (kromě případů, kdy se jedná o první příkaz v těle modulu, třídy nebo funkce; viz docstring ).
Raku
  • Raku používá #`(...) k označení blokových komentářů.[19] Raku ve skutečnosti umožňuje použití jakýchkoli „pravých“ a „levých“ spárovaných závorek #` (tj. #`(...), #`[...], #`{...}, #`<...>, a dokonce i složitější #`{{...}} jsou všechny platné blokové komentáře). Závorky je také možné vnořit do komentářů (tj. # `{a {b} c} přejde na poslední uzavírací závorku).
Rubín
  • Blokovat komentář v Ruby se otevře v = začít linka a zavírá se v = konec čára.
Slang
  • Oblast řádků uzavřených # a # oddělovače jsou interpretem ignorovány. Název značky může být jakákoli posloupnost alfanumerických znaků, kterou lze použít k označení způsobu dešifrování přiloženého bloku. Například, # může označovat začátek bloku dokumentace ve formátu LaTeX.
Schéma a raketa
  • K další úplné syntaktické složce (výrazu s) lze přidat komentář #; .
ABAP

ABAP podporuje dva různé druhy komentářů. Pokud je první znak řádku, včetně odsazení, hvězdička (*) celý řádek je považován za komentář, zatímco jednoduchá dvojitá uvozovka (") začíná řádkovou kometu, která funguje až do konce řádku. Mezi prohlášeními nejsou možné komentáře ABAP EXEC SQL a ENDEXEC protože Native SQL má pro tyto znaky jiné využití. Ve většině dialektů SQL dvojitá pomlčka (--) místo toho lze použít.

Esoterické jazyky

Porovnání komentářů

Pro deklaraci komentářů ve zdrojovém kódu existuje široká škála stylů syntaxe.BlockComment kurzíva se zde používá k označení stylu blokového komentáře.InlineComment kurzíva se zde používá k označení stylu vloženého komentáře.

JazykŘádkový komentářBlokovat komentář
Ada, Eiffelova, Euforie, Occam, JISKRA, ANSI SQL, a VHDL-- InlineComment
ALGOL 60komentář BlockComment;
ALGOL 68¢ BlockComment ¢

komentář BlockComment komentář
co BlockComment co
# BlockComment #
£ BlockComment £

APLInlineComment
AppleScript-- InlineComment(* BlockComment *)
Montážní jazyk (liší se); InlineComment jeden příklad (většina montážních jazyků používá pouze řádkové komentáře)
AutoHotkey; InlineComment/* BlockComment */
AWK, Bash, Bourneova skořápka, C shell, Javor, R, Tcl, a Windows PowerShell# InlineComment<# BlockComment #>
ZÁKLADNÍ (různé dialekty):'InlineComment (ne všechny dialekty)

REM InlineComment

C (K&R, ANSI / C89 / C90), CHLAD, PL / I., a REXX/* BlockComment */
C (C99), C ++, Jít, Rychlý a JavaScript// InlineComment/* BlockComment */
C#// InlineComment
/// InlineComment (Komentář k dokumentaci XML)
/* BlockComment */
/** BlockComment */ (Komentář k dokumentaci XML)
COBOL I na COBOL 85 * InlineComment (* ve sloupci 7)
COBOL 2002*> InlineComment
Kučera|| InlineComment|# BlockComment #|

| foo # BlockComment #|

Kobra# InlineComment/# BlockComment #/ (vnořitelný)
D// InlineComment
/// Dokumentace InlineComment (ddoc komentáře)
/* BlockComment */
/ ** Dokumentace BlockComment */ (ddoc komentáře)

/+ BlockComment +/ (vnořitelný)
/ ++ Dokumentace BlockComment +/ (vnořitelný, ddoc komentáře)

DCL$! InlineComment
ECMAScript (JavaScript, ActionScript, atd.)// InlineComment/* BlockComment */
Forth InlineComment( BlockComment ) (jednořádkový i víceřádkový)

( před -- po ) konvence komentáře zásobníku

FORTRAN I do FORTRANU 77C InlineComment (C ve sloupci 1)
Fortran 90! InlineComment
Haskell-- InlineComment{- BlockComment -}
Jáva// InlineComment/* BlockComment */

/** BlockComment */ (Javadoc komentář k dokumentaci)

Lisp a Systém; InlineComment#| BlockComment |#
Lua-- InlineComment --[==[ BlockComment]==] (variabilní počet = znaků)
Javor# InlineComment(* BlockComment *)
Mathematica(* BlockComment *)
Matlab% InlineComment%{
BlockComment (vnořitelný)
%}

Poznámka: Oba symboly procenta – závorka musí být jedinými znaky bez mezer na příslušných řádcích.
Nim# InlineComment#[ BlockComment ]#
Objekt Pascal (Delphi)// InlineComment(* BlockComment *)
{ BlockComment }
OCaml(* BlockComment (* nestable *) *)
Pascal, Modula-2, Modula-3, Oberon, a ML:(* BlockComment *)
Perl a Rubín# InlineComment= začít
BlockComment
= střih
(= konec v Ruby) (LUSK komentář k dokumentaci)

__KONEC__
Komentáře po skončení kódu

PHP# InlineComment
// InlineComment
/* BlockComment */
/ ** Dokumentace BlockComment */ (Komentáře k dokumentu PHP )
PILOTR:InlineComment
PLZ / SYS! BlockComment !
PL / SQL a TSQL-- InlineComment/* BlockComment */
Prolog% InlineComment/* BlockComment */
Krajta# InlineComment''' BlockComment '''
""" BlockComment """

(Řetězec dokumentace když první řádek modulu, třídy, metody nebo funkce)

Raku# InlineComment#`{
BlockComment
}

= komentář
Tento odstavec komentáře bude platit až do další směrnice POD
nebo první prázdný řádek.
[20][21]

Červené; InlineComment{ BlockComment }
Rez// InlineComment

/// InlineComment („Vnější“ rustdoc komentář)
//! InlineComment ("Vnitřní" rustdoc komentář)

/* BlockComment */ (vnořitelný)

/** BlockComment */ („Vnější“ rustdoc komentář)
/*! BlockComment */ ("Vnitřní" rustdoc komentář)

SAS* BlockComment;
/* BlockComment */
7. semeno# InlineComment(* BlockComment *)
Simulakomentář BlockComment;
! BlockComment;
Pokec"BlockComment"
Chytrý{* BlockComment *}
Standardní ML(* BlockComment *)
TeX, Latex, PostScript, Erlang, Elixír a Slang% InlineComment
Texinfo@C InlineComment

@komentář InlineComment

TUTOR* InlineComment
příkaz $$ InlineComment
Visual Basic' InlineComment
Rem InlineComment
Visual Basic .NET' InlineComment

''' InlineComment (Komentář k dokumentaci XML)
Rem InlineComment

Vizuální prolog% InlineComment/* BlockComment */
Wolfram jazyk(* BlockComment *)
Xojo' InlineComment
// InlineComment
rem InlineComment

Viz také

Reference

  1. ^ A b Pro více příkazů na jednom řádku
  2. ^ Tři různé druhy vět, z nichž každá odděluje fráze a jednotky odlišně:
      1. použití sériové klauzule go-on-token (viz středník): začít A; b; C konec - jednotky jsou prováděny v pořadí.
      2. vedlejší doložka pomocí a také token (viz. ","): začít a, b, c konec - pořadí provedení má být optimalizováno překladačem.
      3. paralelní klauzule pomocí a také token (viz. ","): par začít a, b, c konec - jednotky musí běžet v paralelních vláknech.
  3. ^ středník - výsledek ustupujícího příkazu skrytý, čárka - zobrazený výsledek
  4. ^ Referenční příručka Bash, 3.1.2.1 Úniková postava
  5. ^ Dokumentace Pythonu, 2. Lexikální analýza: 2.1.5. Explicitní spojení řádků
  6. ^ Mathworks.com Archivováno 7. února 2010 v Wayback Machine
  7. ^ https://ss64.com/nt/syntax-brackets.html
  8. ^ https://autohotkey.com/docs/Scripts.htm#continuation
  9. ^ Aby byl soubor M (zdroj MATLAB) přístupný podle názvu, musí být jeho nadřazený adresář ve vyhledávací cestě (nebo v aktuálním adresáři).
  10. ^ https://nim-lang.org/docs/manual.html#lexical-analysis-comments
  11. ^ A b „Mathworks.com“. Archivovány od originál dne 21. listopadu 2013. Citováno 25. června 2013.
  12. ^ „Algol68_revised_report-AB.pdf na PDF str. 61–62, původní dokument str. 121–122“ (PDF). Citováno 27. května 2014.
  13. ^ „HTML verze revidované zprávy Algol68 AB“. Archivovány od originál dne 17. března 2013. Citováno 27. května 2014.
  14. ^ A b „DLang.org, Lexical“. Citováno 27. května 2014.
  15. ^ „AutoItScript.com Reference klíčových slov, # comments-start“. Citováno 27. května 2014.
  16. ^ „slang-2.2.4 / src / slprepr.c - řádek 43 až 113“. Citováno 28. května 2014.
  17. ^ "Nim Manual".
  18. ^ „Tip v Pythonu: Víceřádkové řetězce můžete použít jako víceřádkové komentáře“, 11. září 2011, Guido van Rossum
  19. ^ „Dokumentace Perl 6 (syntaxe)“. docs.perl6.org. Komentáře. Citováno 5. dubna 2017.
  20. ^ „Komentáře Perl 6 POD“.
  21. ^ „POD 6 Perl (zkrácené bloky)“.