Сравнение языков программирования (синтаксис) - Comparison of programming languages (syntax)
В этом сравнении языков программирования сравниваются особенности синтаксиса (формата) языков для более чем 50 языков программирования.
Выражения
Выражения языка программирования в целом можно разделить на четыре синтаксических структуры:
- префиксная запись
-
Лисп
(* (+ 2 3) (expt 4 5))
- инфиксная запись
-
Фортран
(2 + 3) * (4 ** 5)
- суффикс, постфикс или обратная польская запись
-
Четвертый
2 3 + 4 5 ** *
- математическая запись
-
УЧИТЕЛЬ
(2 + 3)(45) $$ note implicit multiply operator
Заявления
Когда языки программирования (обычно потомки Algol ) имеют операторы, у них обычно есть соглашения для:
- разделители операторов;
- терминаторы операторов; а также
- продолжение строки
Разделитель операторов используется для разграничения границ между двумя отдельными операторами. Знак конца оператора используется для обозначения конца отдельного оператора. Языки, которые интерпретируют конец строки как конец оператора, называются «строчно-ориентированными» языками.
«Продолжение строки» - это соглашение в строчно-ориентированных языках, где символ новой строки потенциально может быть неверно истолкован как признак конца оператора. В таких языках это позволяет одному оператору занимать более одной строки.
Язык | Разделитель-терминатор операторов | Вторичный разделитель-ограничитель |
---|---|---|
ABAP | разделенный период | |
Ада | точка с запятой завершается | |
АЛГОЛ | точка с запятой разделена | |
АЛГОЛ 68 | точка с запятой и запятая разделены | |
APL | новая строка завершена |
[Direct_function ⋄] отделенная вторичная
|
AppleScript | новая строка завершена | |
AutoHotkey | новая строка завершена | |
БАЗОВЫЙ | новая строка завершена | двоеточие разделено |
Бу | новая строка завершена | |
C | точка с запятой завершает операторы | запятая разделяет выражения |
C ++ | точка с запятой завершает операторы | запятая разделяет выражения |
C # | точка с запятой завершается | |
КОБОЛ | через пробелы, иногда через точку, необязательно через запятую и точку с запятой. | |
Кобра | новая строка завершена | |
CoffeeScript | новая строка завершена | |
CSS | точка с запятой разделена | |
D | точка с запятой завершается | |
Эйфелева | новая строка завершена | точка с запятой |
Erlang | двоеточие отделено, точка завершена | |
F # | новая строка завершена | точка с запятой |
Фортран | новая строка завершена | точка с запятой |
Четвертый | точки с запятой завершают определения слов. пробел завершает использование слова | |
GFA BASIC | новая строка завершена | |
Идти | точка с запятой (вставляется компилятором) | |
Haskell (в do-нотации) | новая строка разделена | |
Haskell (в do-нотации, когда используются фигурные скобки) | точка с запятой разделена | |
Джава | точка с запятой завершается | |
JavaScript | разделены точкой с запятой (но иногда неявно вставляются в символы новой строки) | |
Котлин | разделены точкой с запятой (но иногда неявно вставляются в символы новой строки) | |
Lua | разделенные пробелами (точка с запятой необязательно) | |
Mathematica также называется Wolfram |
точка с запятой разделена | |
MATLAB | новая строка завершена | точка с запятой или запятая |
MUMPS также называют M |
новая строка завершает область видимости строки, ближайшую к "оператору", имеющемуся у M. | пробел разделяет / завершает команду, позволяя следовать другой команде. |
Ним | новая строка завершена | |
Также Object Pascal ( Delphi ) | точка с запятой разделена | |
Цель-C | точка с запятой завершается | |
OCaml | точка с запятой разделена | |
Паскаль | точка с запятой разделена | |
Perl | точка с запятой разделена | |
PHP | точка с запятой завершается | |
Выбрать базовый | новая строка завершена | точка с запятой разделена |
PowerShell | новая строка завершена | точка с запятой разделена |
Пролог | через запятую (соединение), через точку с запятой (дизъюнкцию), точку в конце (предложение) | |
Python | новая строка завершена | точка с запятой |
р | новая строка завершена | точка с запятой |
Раку | точка с запятой разделена | |
красный | разделены пробелами | |
Рубин | новая строка завершена | точка с запятой |
Ржавчина | точка с запятой завершает операторы | запятая разделяет выражения |
Scala | завершение новой строки (точка с запятой не обязательна) | точка с запятой |
Семя7 | разделенные точкой с запятой (завершение точкой с запятой разрешено) | |
Симула | точка с запятой разделена | |
Сленг | точка с запятой разделена | |
Болтовня | разделенный период | |
Стандартный ML | точка с запятой разделена | |
Быстрый | точка с запятой (вставляется компилятором) | |
Visual Basic | новая строка завершена | двоеточие разделено |
Visual Basic .NET | новая строка завершена | двоеточие разделено |
Язык Wolfram Language | точка с запятой разделена | |
Xojo | новая строка завершена | |
Язык | Разделитель-терминатор операторов | Вторичный разделитель-ограничитель |
Продолжение линии
Продолжение строки обычно выполняется как часть лексического анализа : новая строка обычно приводит к добавлению токена в поток токенов, если не обнаружено продолжение строки.
- Пробел - языки, не требующие продолжения.
- Ada - строки заканчиваются точкой с запятой
- C # - строки заканчиваются точкой с запятой
- JavaScript - строки заканчиваются точкой с запятой (что может быть логично)
- Lua
- OCaml
- Амперсанд как последний символ строки
- Обратная косая черта как последний символ строки
- bash и другие оболочки Unix
- Препроцессор C и C ++
- Математика и язык Wolfram Language
- Python
- Рубин
- JavaScript - только в строках с одинарными или двойными кавычками
- Обратный апостроф как последний символ строки
- Дефис как последний символ строки
- Подчеркивание как последний символ строки
- Многоточие (как три точки, а не один специальный символ)
- MATLAB : маркер многоточия не обязательно должен быть последними символами в строке, но любые последующие за ним будут проигнорированы. (В сущности, она начинает комментарий , который проходит через (то есть в том числе) , первый последующий символ новой строки. Сравните это с инлайн комментарием, который не проходит до первого следующего символа новой строки.)
- Разделитель-запятая как последний символ строки
- Ruby (комментарий может следовать за разделителем)
- Разделитель левой квадратной скобки как последний символ строки
- Пакетный файл : начало блока в скобках может разрешить продолжение строки
- Ruby: левая скобка, левая квадратная скобка или левая фигурная скобка
- Оператор как последний объект строки
- Ruby (комментарий может следовать за оператором)
- Оператор как первый символ продолжения строки
- AutoHotkey : любые операторы выражения, кроме ++ и -, а также запятой или точки.
- Обратная косая черта как первый символ продолжения строки
- Некоторая форма встроенного комментария служит продолжением строки
-
Турбо Ассемблер :
\
-
m4 :
dnl
-
TeX :
%
- Позиция персонажа
- Fortran 77 : Строка без комментариев является продолжением предыдущей строки без комментариев, если какой-либо непробельный символ появляется в столбце 6. Строки комментариев не могут быть продолжены.
-
COBOL : строковые константы можно продолжить, не заканчивав исходную строку в предложении PICTURE с
'
, а затем вставив-
в столбец 7 (используется та же позиция, что и*
для комментария). - УЧИТЕЛЬ : Строки, начинающиеся с табуляции (после любого отступа, требуемого контекстом), продолжают предыдущую команду.
- [Конец и начало] с использованием обычных кавычек
- Препроцессор C и C ++ : строка обычно заканчивается и продолжается, начиная с кавычки в следующей строке.
Библиотеки
Чтобы импортировать в библиотеку способ чтения внешних, возможно , скомпилированные, процедуры, программы или пакеты. Импорт можно классифицировать по уровню (модуль, пакет, класс, процедура, ...) и по синтаксису (имя директивы, атрибуты, ...)
- Импорт файла
-
addpath(directory)
MATLAB -
COPY filename.
КОБОЛ -
:-include("filename").
Пролог -
#include file="filename"
ASP -
#include "filename"
, AutoHotkey , AutoIt , C , C ++ -
#include <filename>
AutoHotkey , AutoIt , C , C ++ -
#import "filename"
, Цель-C -
#import <filename>
Цель-C -
Import["filename"]
Математика и язык Wolfram Language -
include 'filename'
Фортран -
include "filename";
PHP -
include [filename] program
, Выберите "Базовый" -
#include [filename] program
Выбрать базовый -
include!( "filename");
Ржавчина -
load "filename"
Сокол -
load %filename
красный -
require("filename")
Lua -
require "filename";
Perl , PHP -
source(""filename"")
р
- Импорт пакета
-
#include filename
C , C ++ -
#[path = "filename"] mod altname;
, Ржавчина -
@import module;
Цель-C -
<<name
Математика и язык Wolfram Language -
:-use_module(module).
Пролог : -
from module import *
Python -
extern crate libname;
, Ржавчина -
extern crate libname as altname;
Ржавчина -
mod modname;
, Ржавчина -
library("package")
R : -
load module
, Сокол -
load module.submodule
Сокол -
IMPORT module
Оберон -
import altname "package/name"
Перейти : -
import package.module;
, D -
import altname = package.module;
D -
import Module
, Haskell -
import qualified Module as M
Haskell -
import package.*
Java , MATLAB , котлин -
import "modname";
JavaScript : -
import altname from "modname";
, JavaScript : -
import package
Scala -
import package._
, Scala -
import module
Быстрый -
import module
, Python -
require("modname")
Lua : -
use module
, Fortran 90 + -
use module, only : identifier
Fortran 90 + -
use Module;
, Perl -
use Module qw(import options);
Perl -
use Package.Name
Кобра -
uses unit
Паскаль -
with package
Ада
- Импорт класса
-
from module import class
Python -
import class
Сокол -
import package.class
Java , MATLAB , котлин -
import class from "modname";
, JavaScript -
import {class} from "modname";
, JavaScript -
import {class as altname} from "modname";
JavaScript -
import package.class
, Scala -
import package.{ class1 => alternativeName, class2 }
, Scala -
import package._
Scala -
use Namespace\ClassName;
, PHP -
use Namespace\ClassName as AliasName;
PHP
- Импорт процедуры / функции
-
from module import function
Python : -
import package.module : symbol;
, D : -
import package.module : altsymbolname = symbol;
D : -
import Module (function)
Haskell : -
import function from "modname";
, JavaScript : -
import {function} from "modname";
, JavaScript : -
import {function as altname} from "modname";
JavaScript : -
import package.function
MATLAB : -
import package.class.function
, Scala : -
import package.class.{ function => alternativeName, otherFunction }
Скала : -
use Module ('symbol');
Perl : -
use function Namespace\function_name;
, PHP : -
use Namespace\function_name as function_alias_name;
PHP : -
use module::submodule::symbol;
, Ржавчина : -
use module::submodule::{symbol1, symbol2};
, Ржавчина : -
use module::submodule::symbol as altname;
Ржавчина :
- Постоянный импорт
-
use const Namespace\CONST_NAME;
PHP
Вышеупомянутые операторы также можно классифицировать по тому, являются ли они синтаксическим удобством (позволяя ссылаться на вещи по более короткому имени, но они все равно могут ссылаться на какое-либо полностью определенное имя без импорта) или действительно ли они необходимы для доступа код (без которого невозможно получить доступ к коду даже с полностью определенными именами).
- Синтаксическое удобство
- Требуется код доступа
-
import altname "package/name"
Идти -
import altname from "modname";
JavaScript -
import module
Python
Блоки
Блок представляет собой обозначение для группы из двух или более операторов, выражений или других единиц коды, которые связаны таким образом, чтобы включать в целом.
- Подтяжки (также известные как фигурные скобки)
{
...}
-
Языки программирования с фигурными скобками : C , C ++ , Objective-C , Go , Java , JavaScript / ECMAScript , C # , D , Perl , PHP (
for
&loop
циклы или передача блока в качестве аргумента), R , Rust , Scala , S-Lang , Swift , Windows PowerShell , Haskell (в нотации), AutoHotkey
- Скобки
(
...)
- Квадратные скобки
[
...]
- Smalltalk (блоки - это объекты первого класса, также известные как замыкания)
-
begin
...end
-
do
...end
-
do
...done
-
Bash (
for
&while
циклы), Visual Basic , Fortran , TUTOR (с обязательным отступом тела блока), Visual Prolog
-
do
...end
- X ...
end
(напримерif
...end
):
-
Рубин (
if
,while
,until
,def
,class
,module
заявление), OCaml (for
&while
петли), MATLAB (if
&switch
условные,for
иwhile
петля,try
положение,package
,classdef
,properties
,methods
,events
, иfunction
блоки), Луы (then
/else
&function
)
- (
begin
...)
- (прогноз ...)
- (
do
...)
- Отступ
- Внешние языки правил : Cobra , CoffeeScript , F # , Haskell (в нотации do, когда фигурные скобки опущены), occam , Python , Nim.
- Языки произвольной формы : большинство потомков ALGOL (включая C , Pascal и Perl ); Языки Lisp
- Другие
-
Ada , Visual Basic , Seed7 :
if
...end if
-
АПЛ :
:If
...:EndIf
или:If
...:End
-
Баш , ш и кш :
if
...fi
,do
...done
,case
...esac
; -
АЛГОЛ 68 :
begin
...end
,(
...)
,if
...fi
,do
...od
-
Lua , Pascal , Modula-2 , Seed7 :
repeat
...until
-
COBOL :
IF
...END-IF
,PERFORM
...END-PERFORM
и т. Д. Для операторов; ....
для предложений. -
Visual Basic .Net :
If
...End If
,For
...Next
,Do
...Loop
-
Small Basic :
If
...EndIf
,For
...EndFor
,While
...EndWhile
Комментарии
Комментарии можно классифицировать по:
- стиль (встроенный / блок)
- правила синтаксического анализа (игнорируются / интерполируются / сохраняются в памяти)
- рекурсивность (вложенность / не вложенность)
- использует ( строки документации / одноразовые комментарии / другое)
Встроенные комментарии
Встроенные комментарии - это обычно те, в которых используется символ новой строки для обозначения конца комментария и произвольный разделитель или последовательность токенов для обозначения начала комментария.
Примеры:
Условное обозначение | Языки |
---|---|
C
|
От Fortran I до Fortran 77 (C в столбце 1) |
REM
|
BASIC , Пакетные файлы |
::
|
Пакетные файлы , COMMAND.COM , cmd.exe |
NB.
|
J ; от (исторически) распространенной аббревиатуры Nota bene , латинского слова «хорошо примечать». |
⍝
|
APL ; Мнемоника состоит в том, что глиф (пораженный обувью) напоминает настольную лампу и, следовательно, «освещает» все вышесказанное. |
#
|
Оболочка Bourne и другие оболочки UNIX , Cobra , Perl , Python , Ruby , Seed7 , Windows PowerShell , PHP , R , Make , Maple , Elixir , Nim |
%
|
TeX , Пролог , MATLAB , Erlang , S-Lang , Visual Prolog |
//
|
ActionScript , C (C99) , C ++ , C # , D , F # , Go , Java , JavaScript , Kotlin , Object Pascal ( Delphi ), Objective-C , PHP , Rust , Scala , SASS , Swift , Xojo |
'
|
Обезьяна, Visual Basic , VBScript , Small Basic , Gambas , Xojo |
!
|
Fortran , Basic Plus, Inform, Pick Basic |
;
|
Сборка x86 , AutoHotkey , AutoIt , Lisp , Common Lisp , Clojure , Rebol , Red , Scheme |
--
|
Euphoria , Haskell , SQL , Ada , AppleScript , Eiffel , Lua , VHDL , SGML , PureScript |
*
|
Ассемблер S / 360 (* в столбце 1), COBOL I - COBOL 85, PAW , Fortran IV - Fortran 77 (* в столбце 1), Pick Basic , GAMS (* в столбце 1) |
||
|
Завиток |
"
|
Vimscript , ABAP |
\
|
Четвертый |
*>
|
COBOL 90 |
Заблокировать комментарии
Блочные комментарии - это, как правило, те, в которых используется разделитель для обозначения начала комментария и другой разделитель для обозначения конца комментария. В этом контексте пробелы и символы новой строки не считаются разделителями.
Примеры:
Условное обозначение | Языки |
---|---|
comment ~ ;
|
АЛГОЛ 60 , СИМУЛА |
¢ ~ ¢ , # ~ # , co ~ co , comment ~comment
|
АЛГОЛ 68 |
/* ~ */
|
ActionScript, AutoHotkey , C, C ++, C #, D, Go, Java , JavaScript , kotlin , Objective-C , PHP , PL / I , Prolog , Rexx , Rust (может быть вложенным), Scala (может быть вложенным), SAS , SASS, SQL, Swift (может быть вложенным), Visual Prolog , CSS |
#cs ~ #ce
|
AutoIt |
/+ ~ +/
|
D (может быть вложенным) |
/# ~ #/
|
Кобра (может быть вложенной) |
<# ~ #>
|
Powershell |
<!-- ~ -->
|
HTML , XML |
=begin ~ =cut
|
Perl |
#`( ~ )
|
Raku (символы в скобках могут быть (), <>, {}, [], любые символы Unicode с зеркальным отображением BiDi или символы Unicode со свойствами Ps / Pe / Pi / Pf) |
=begin ~ =end
|
Рубин |
#<TAG> ~ , ~ , ~ , ~ , ~ , ~#</TAG> #stop EOF #iffalse #endif #ifntrue #endif #if false #endif #if !true #endif
|
Сленг |
{- ~ -}
|
Haskell (может быть вложенным) |
(* ~ *)
|
Delphi , М.Л., Mathematica, Object Pascal, Паскаль , Seed7 , Applescript , OCaml (могут быть вложенными), Стандартный ML (могут быть вложенными), клен, новояз , F # |
{ ~ }
|
Delphi, Object Pascal, Паскаль, Красный |
{# ~ #}
|
Nunjucks, Twig |
{{! ~ }}
|
Усы , Руль |
{{!-- ~ --}}
|
Рули (не могут быть вложенными, но могут содержать {{ и }} )
|
|# ~ #|
|
Завиток |
%{ ~ %}
|
MATLAB (символы должны быть в отдельной строке) |
#| ~ |#
|
Lisp , Scheme , Racket (может быть вложен во все три). |
#[ ~ ]#
|
Ним |
--[[ ~ ]] , --[=[ ~ ]=] , --[= ... =[ ~ ]= ...=]
|
Lua (скобки могут иметь любое количество совпадающих символов =; могут быть вложены в несовпадающие разделители) |
" ~ "
|
Болтовня |
(comment ~ )
|
Clojure |
Уникальные варианты
- Фортран
- Отступы строк в Fortran 66/77 значительны. Фактическая инструкция находится в столбцах с 7 по 72 строки. Любой непробельный символ в столбце 6 означает, что эта строка является продолжением предыдущей. Знак "
C
" в столбце 1 означает, что вся эта строка является комментарием. Столбцы с 1 по 5 могут содержать число, которое служит меткой. Столбцы с 73 по 80 игнорируются и могут использоваться для комментариев; во времена перфокарт эти столбцы часто содержали порядковые номера, чтобы колоду карт можно было отсортировать в правильном порядке, если кто-то случайно уронил карты. Fortran 90 устранил необходимость в правиле отступа и добавил встроенные комментарии, используя!
символ в качестве разделителя комментариев.
- КОБОЛ
- В коде фиксированного формата отступ строк имеет значение. Столбцы 1–6 и столбцы начиная с 73 игнорируются. Если в столбце 7 находится
*
или/
, то эта строка является комментарием. До COBOL 2002 года, еслиD
иd
был в колонке 7, было бы определить «отладочную линию» , которая будет проигнорировано , если компилятор не было поручено собрать его.
- Кобра
- Cobra поддерживает блочные комментарии с «
/#
...#/
», что похоже на «/*
...*/
», часто встречающееся в языках на основе C, но с двумя отличиями. Этот#
символ повторно используется из однострочной формы комментария «#
...», а комментарии блока могут быть вложенными, что удобно для комментирования больших блоков кода.
- Завиток
- Curl поддерживает блочные комментарии с пользовательскими тегами, как в
|foo# ... #foo|
.
- Lua
- Как и в случае с необработанными строками, между квадратными скобками может быть любое количество знаков равенства, при условии, что открывающий и закрывающий теги имеют одинаковое количество знаков равенства; это позволяет вложенности, пока вложенные комментарии блок / сырые строки используют разное количество знаков равенства , чем их ограждающей комментарий:
--[[comment --[=[ nested comment ]=] ]]
. Lua отбрасывает первую новую строку (если она есть), которая следует непосредственно за открывающим тегом.
- Perl
- Блочные комментарии в Perl считаются частью документации и называются Plain Old Documentation (POD). Технически Perl не имеет соглашения о включении блочных комментариев в исходный код, но POD обычно используется как обходной путь.
- PHP
- PHP поддерживает стандартные комментарии в стиле C / C ++, но также поддерживает стиль Perl.
- Python
- Использование тройных кавычек для комментирования строк исходного текста на самом деле не формирует комментарий. Заключенный текст становится строковым литералом, который Python обычно игнорирует (кроме случаев, когда это первая инструкция в теле модуля, класса или функции; см. Docstring ).
- Раку
-
Раку использует
#`(...)
для обозначения комментариев блока. Рака фактически позволяет использовать любого «права» и «левые» спаренные скобки после#`
(т.е.#`(...)
,#`[...]
,#`{...}
,#`<...>
, и даже более сложных#`{{...}}
являются всеми действительными комментариями блочных). Скобки также могут быть вложены в комментарии (т. Е.#`{ a { b } c }
Переходят к последней закрывающей скобке).
- Рубин
- Комментарий блока в Ruby открывается на
=begin
строке и закрывается на=end
строке.
- Сленг
- Область линий , окруженные
#<tag>
и#</tag>
разделители игнорируются интерпретатором. Имя тега может быть любой последовательностью буквенно-цифровых символов, которая может использоваться для обозначения того, как должен быть расшифрован заключенный блок. Например,#<latex>
может указывать на начало блока документации в формате LaTeX.
- Схема и ракетка
- Следующий полный синтаксический компонент (s-выражение) можно закомментировать
#;
.
- ABAP
ABAP поддерживает два разных типа комментариев. Если первым символом строки, включая отступ, является звездочка ( *
), вся строка рассматривается как комментарий, а одинарная двойная кавычка ( "
) начинает встроенный комментарий, который действует до конца строки. Комментарии ABAP невозможны между операторами EXEC SQL
и ENDEXEC
потому, что в собственном SQL эти символы используются по-другому. --
Вместо этого в большинстве диалектов SQL можно использовать двойное тире ( ).
- Эзотерические языки
- Многие эзотерические языки программирования следуют соглашению, согласно которому любой текст, не исполняемый указателем инструкции (например, Befunge ) или иным образом не имеющий значения (например, Brainfuck ), считается «комментарием».
Сравнение комментариев
Существует множество стилей синтаксиса для объявления комментариев в исходном коде.
BlockComment
здесь курсивом используется для обозначения стиля блочного комментария.
InlineComment
Курсив здесь используется для обозначения стиля встроенного комментария.
Язык | Встроенный комментарий | Заблокировать комментарий |
---|---|---|
Ада , Эйфель , Эйфория , Оккам , SPARK , ANSI SQL и VHDL |
-- InlineComment
|
|
АЛГОЛ 60 |
comment BlockComment;
|
|
АЛГОЛ 68 |
¢ BlockComment ¢
|
|
APL |
⍝ InlineComment
|
|
AppleScript |
-- InlineComment
|
(* BlockComment *)
|
Язык ассемблера (варьируется) |
; InlineComment один пример (большинство языков ассемблера используют только строковые комментарии)
|
|
AutoHotkey |
; InlineComment
|
/* BlockComment */
|
AWK , Bash , Bourne оболочки , C оболочки , Maple , R , Tcl , и Windows PowerShell |
# InlineComment
|
<# BlockComment #>
|
BASIC (различные диалекты): |
'InlineComment (не все диалекты)
|
|
C (K&R, ANSI / C89 / C90), CHILL , PL / I и REXX |
/* BlockComment */
|
|
C (C99) , C ++ , Go , Swift и JavaScript |
// InlineComment
|
/* BlockComment */
|
C # |
// InlineComment /// InlineComment (Комментарий к документации XML)
|
/* BlockComment */ /** BlockComment */ (Комментарий к документации XML)
|
COBOL I в COBOL 85 |
* InlineComment (* в графе 7)
|
|
КОБОЛ 2002 |
*> InlineComment
|
|
Завиток |
|| InlineComment
|
|# BlockComment #|
|
Кобра |
# InlineComment
|
/# BlockComment #/ (гнездовой)
|
D |
// InlineComment /// Documentation InlineComment ( ddoc комментарии)
|
/* BlockComment */ /** Documentation BlockComment */ ( ddoc комментарии)
|
DCL |
$! InlineComment
|
|
ECMAScript ( JavaScript , ActionScript и т. Д.) |
// InlineComment
|
/* BlockComment */
|
Четвертый |
\ InlineComment
|
( BlockComment ) (однострочный и многострочный)
|
От FORTRAN I до FORTRAN 77 |
C InlineComment (C в столбце 1)
|
|
Фортран 90 |
! InlineComment
|
|
Haskell |
-- InlineComment
|
{- BlockComment -}
|
Джава |
// InlineComment
|
/* BlockComment */
|
Лисп и схема |
; InlineComment
|
#| BlockComment |#
|
Lua |
-- InlineComment
|
--[==[ BlockComment]==] (переменное количество знаков =)
|
Клен |
# InlineComment
|
(* BlockComment *)
|
Mathematica |
(* BlockComment *)
|
|
Matlab |
% InlineComment
|
%{ Примечание. Оба символа процентных скобок должны быть единственными непробельными символами в соответствующих строках. |
Ним |
# InlineComment
|
#[ BlockComment ]#
|
Object Pascal |
// InlineComment
|
(* BlockComment *) { BlockComment }
|
OCaml |
(* BlockComment (* nestable *) *)
|
|
Паскаль , Модула-2 , Модула-3 , Оберон и ML : |
(* BlockComment *)
|
|
Perl и Ruby |
# InlineComment
|
=begin ( =end на Ruby) ( комментарий документации POD )
|
PHP |
# InlineComment // InlineComment
|
/* BlockComment */ /** Documentation BlockComment */ ( Комментарии PHP Doc )
|
ПИЛОТ |
R:InlineComment
|
|
PLZ / SYS |
! BlockComment !
|
|
PL / SQL и TSQL |
-- InlineComment
|
/* BlockComment */
|
Пролог |
% InlineComment
|
/* BlockComment */
|
Python |
# InlineComment
|
''' BlockComment ''' ( Строка документации, если первая строка модуля, класса, метода или функции) |
р |
# InlineComment
|
|
Раку |
# InlineComment
|
#`{
|
красный |
; InlineComment
|
{ BlockComment }
|
Ржавчина |
// InlineComment
|
/* BlockComment */ (гнездовой)
|
SAS |
* BlockComment; /* BlockComment */
|
|
Семя7 |
# InlineComment
|
(* BlockComment *)
|
Симула |
comment BlockComment; ! BlockComment;
|
|
Болтовня |
"BlockComment"
|
|
Умный |
{* BlockComment *}
|
|
Стандартный ML |
(* BlockComment *)
|
|
TeX , LaTeX , PostScript , Erlang , Elixir и S-Lang |
% InlineComment
|
|
Texinfo |
@c InlineComment
|
|
УЧИТЕЛЬ |
* InlineComment command $$ InlineComment
|
|
Visual Basic |
' InlineComment Rem InlineComment
|
|
Visual Basic .NET |
' InlineComment
|
|
Визуальный пролог |
% InlineComment
|
/* BlockComment */
|
Язык Wolfram Language |
(* BlockComment *)
|
|
Xojo |
' InlineComment // InlineComment rem InlineComment
|
Смотрите также
- Синтаксис C
- Синтаксис C ++
- Языки программирования с фигурными скобками , широкое семейство синтаксисов языков программирования
- Синтаксис Java
- Синтаксис JavaScript
- Синтаксис и семантика PHP
- Синтаксис и семантика Python