stringtranslate.com

Сравнение языков программирования (синтаксис)

В этом сравнении языков программирования сравниваются особенности синтаксиса (формата) более 50 языков программирования.

Выражения

Выражения языка программирования можно условно разделить на четыре синтаксические структуры:

префиксная нотация
инфиксная нотация
суффикс, постфикс или обратная польская запись
Математическая нотация

Заявления

Когда в языке программирования есть операторы , в них обычно есть соглашения для:

Разделитель операторов разграничивает два отдельных оператора. Терминатор операторов определяет конец отдельного оператора. Языки, которые интерпретируют конец строки как конец оператора, называются «строчно-ориентированными» языками.

"Продолжение строки" — это соглашение в языках, ориентированных на строки, где символ новой строки потенциально может быть неверно истолкован как терминатор оператора. В таких языках он позволяет одному оператору охватывать более одной строки.

Продолжение линии

Продолжение строки обычно выполняется в рамках лексического анализа : новая строка обычно приводит к добавлению токена в поток токенов, если только не обнаружено продолжение строки.

Пробелы – языки, не требующие продолжений
Амперсанд как последний символ строки
Обратная косая черта как последний символ строки
Обратный апостроф как последний символ строки
Дефис как последний символ строки
Подчеркивание как последний символ строки
Многоточие (как три точки, а не один специальный символ)
Запятая как последний символ строки
Левая скобка-разделитель как последний символ строки
Оператор как последний объект строки
Оператор как первый символ продолжения строки
Обратная косая черта как первый символ продолжения строки
Некоторые формы встроенных комментариев служат продолжением строки.
Позиция персонажа
[Конец и начало] с использованием обычных кавычек

Библиотеки

Импорт библиотеки — это способ чтения внешних, возможно скомпилированных, процедур, программ или пакетов. Импорт может быть классифицирован по уровню (модуль, пакет, класс, процедура,...) и по синтаксису (имя директивы, атрибуты, ... )

Импорт файла
Импорт пакета
Импорт класса
Импорт процедуры/функции
Постоянный импорт

Вышеуказанные операторы также можно классифицировать по тому, являются ли они синтаксическим удобством (позволяющим ссылаться на вещи по более короткому имени, но на них все равно можно ссылаться по некоторому полностью квалифицированному имени без импорта) или они действительно необходимы для доступа к коду (без чего невозможно получить доступ к коду, даже с полностью квалифицированными именами).

Синтаксическое удобство
Требуется для доступа к коду

Блоки

Блок это обозначение группы из двух или более операторов, выражений или других единиц кода, которые связаны таким образом, что составляют единое целое.

Фигурные скобки (они же фигурные скобки) {...}
Скобки (...)
Квадратные скобки [...]
begin...end
do...end
do...done
do...end
Х ... end(например if... end):
( begin...)
(прогноз ...)
( do...)
Отступ
Другие

Комментарии

Комментарии можно классифицировать по:

Встроенные комментарии

Встроенные комментарии обычно используют символ новой строки для обозначения конца комментария и произвольный разделитель или последовательность токенов для обозначения начала комментария.

Примеры:

Блокировать комментарии

Блочные комментарии — это, как правило, те, которые используют разделитель для обозначения начала комментария и другой разделитель для обозначения конца комментария. В этом контексте пробелы и символы новой строки не считаются разделителями. В примерах символ ~ представляет комментарий; а окружающие его символы интерпретируются интерпретаторами/компиляторами как разделители.

Примеры:

Уникальные варианты

Фортран
КОБОЛ
Кобра
Завиток
Луа
Перл
PHP
Питон
Эликсир
Раку
Рубин
Сленг
Схема и Рэкет
АБАП

ABAP поддерживает два разных вида комментариев. Если первый символ строки, включая отступ, является звездочкой ( *), то вся строка считается комментарием, в то время как одинарная двойная кавычка ( ") начинает встроенный комментарий, который действует до конца строки. Комментарии ABAP невозможны между операторами EXEC SQL, и потому что в собственном SQL есть другие способы использования этих символов. В большинстве диалектов SQL вместо этого можно использовать ENDEXECдвойное тире ( ).--

Эзотерические языки

Сравнение комментариев

Существует множество стилей синтаксиса для объявления комментариев в исходном коде. BlockCommentКурсив здесь используется для обозначения стиля блочных комментариев. InlineCommentКурсив здесь используется для обозначения стиля встроенных комментариев.

Смотрите также

Ссылки

  1. ^ ab Для нескольких операторов в одной строке
  2. ^ Три различных типа предложений, каждый из которых по-разному разделяет фразы и единицы:
      1. последовательное предложение с использованием токена go-on (т.е. точки с запятой): begin a; b; c end – блоки выполняются по порядку.
      2. collateral-clause с использованием and-also-token (а именно ","): begin a, b, c end – порядок выполнения должен быть оптимизирован компилятором.
      3. параллельное предложение с использованием and-also-токена (а именно ","): par begin a, b, c end – модули должны выполняться в параллельных потоках.
  3. ^ точка с запятой – результат удаляющегося оператора скрыт, запятая – результат отображен
  4. ^ ab Из Определения языка R , раздел 3.2 Управляющие структуры: «Точка с запятой всегда указывает на конец оператора, в то время как новая строка может указывать на конец оператора. Если текущий оператор синтаксически не завершен, новые строки просто игнорируются оценщиком».
  5. ^ Справочное руководство Bash, 3.1.2.1 Символ экранирования
  6. ^ Документация Python, 2. Лексический анализ: 2.1.5. Явное соединение строк
  7. ^ "Mathworks.com". Архивировано из оригинала 7 февраля 2010 года.
  8. ^ "Скобки/квадратные скобки - Windows CMD - SS64.com". ss64.com .
  9. ^ «Скрипты — Определение и использование | AutoHotkey».
  10. ^ Чтобы M-файл (исходный файл MATLAB) был доступен по имени, его родительский каталог должен находиться в пути поиска (или в текущем каталоге).
  11. ^ abc "Verbose Syntax - F# | Microsoft Learn". Microsoft Learn . 5 ноября 2021 г. Получено 17 ноября 2022 г.
  12. ^ "Руководство по Nim". nim-lang.org .
  13. ^ ab "Mathworks.com". Архивировано из оригинала 21 ноября 2013 года . Получено 25 июня 2013 года .
  14. ^ "Algol68_revised_report-AB.pdf в PDF стр. 61–62, исходный документ стр. 121–122" (PDF) . Получено 27 мая 2014 г. .
  15. ^ "HTML-версия пересмотренного отчета Algol68 AB". Архивировано из оригинала 17 марта 2013 г. Получено 27 мая 2014 г.
  16. ^ ab "DLang.org, Lexical" . Получено 27 мая 2014 г. .
  17. ^ "Справочник ключевых слов AutoItScript.com, #comments-start" . Получено 27 мая 2014 г. .
  18. ^ "slang-2.2.4/src/slprepr.c – строка 43 по 113" . Получено 28 мая 2014 г. .
  19. ^ «Пунктуация · Язык Джулии».
  20. ^ "Руководство по Nim". nim-lang.org .
  21. ^ «Совет по Python: вы можете использовать многострочные строки в качестве многострочных комментариев», 11 сентября 2011 г., Гвидо ван Россум
  22. ^ "Написание документации — Elixir v1.12.3" . Получено 28 июля 2023 г.
  23. ^ "Perl 6 Documentation (Syntax)". docs.perl6.org. Комментарии . Получено 5 апреля 2017 г. .
  24. ^ "Использование препроцессора FPP". Архивировано из оригинала 18 ноября 2022 г. Получено 18 ноября 2022 г.
  25. ^ "Комментарии Perl 6 POD". 25 мая 2023 г.
  26. ^ "Perl 6 POD (сокращенные блоки)". 25 мая 2023 г.

Примечания

  1. ^ Visual Basic .NET не поддерживает традиционные многострочные комментарии, но их можно эмулировать с помощью директив компилятора.
  2. ^ ab Хотя C# поддерживает традиционные блочные комментарии /* ... */, для их имитации можно использовать директивы компилятора, как в VB.NET.
  3. ^ ab Символ продолжения строки _может использоваться для расширения однострочного комментария на следующую строку без необходимости снова набирать 'or REM. Это можно сделать до 24 раз подряд.
  4. ^ Fortran не поддерживает традиционные блочные комментарии, но некоторые компиляторы поддерживают директивы препроцессора в стиле C / C++ , позволяя программисту эмулировать многострочные комментарии. [24]