
Элементы
Все языки программирования имеют некоторые примитивные строительные блоки для описания данных и процессов преобразования или применения к ним (например, сложение двух чисел или выбор элемента из коллекции). Эти примитивы определяются синтаксическими и семантическими правилами, которые описывают их структуру и смысл соответственно.
Поверхность формы языка программирования известна как его синтаксис. Большинство языков программирования являются чисто текстовыми, они используют последовательности текста, включая слов, цифр и знаков препинания, как и написано в естественных языках. С другой стороны, есть некоторые языки программирования, которые имеют больше графический характер, с использованием визуальных связей, между символами, указывающим программе.
Синтаксис языка описывает возможные комбинации символов, которые образуют синтаксически правильные программы. Определенное сочетание символов обрабатывается семантикой.
Синтаксис языков программирования, как правило, определяется с помощью комбинации регулярных выражений (для лексического состава) и формы Бэкуса-Наура (для грамматической структуры).
Семантика
Термин семантика относится к смыслу языка, в отличие от его формы (синтаксис).
Статическая семантика
Статическая семантика определяет ограничения на структуру действительного текста, который трудно или невозможно выразить в стандартных синтаксических формализмах. Для составления языка, к статической семантики относятся, в основном те семантические правила, которые могут быть проверены во время компиляции. Примерами могут послужить включение в себя проверку, что каждый идентификатор объявлен до его использования (в языках, которые требуют такие заявления) или, что этикетки на гербе заявлены различно. Многие важные ограничения такого типа, как проверить, что идентификаторы используются в соответствующем контексте (например, не добавляя целое число в имени функции), или, что вызовы подпрограмм имеют соответствующие количество и типы аргументов, могут быть обеспечены путем определения их в качестве правил в логике называемого типом системы. Другие формы статического анализа, как анализ потока данных также может быть частью статической семантики. Новые языки программирования как Java и C # имеют определенный анализ назначения, форму анализа потока данных, как часть их статической семантики.
Динамическая семантика
После того как данные были инициализированы, машины должны быть проинструктированы для выполнения операций над данными. Например, семантика может определить алгоритм, по которому вычисляются выражения для значений, или то, каким образом управляющие структуры условно выполнят инструкции. Динамическая семантика (также известный как выполнение семантика) языка определяет, как и когда различные конструкции языка должны воспроизводить код. Есть много способов определения выполнения семантики. Естественный язык часто используется для указания выполнения семантики языка, которая широко используются в практике. Значительное количество научных исследований вошли в формальную семантику языков программирования, которые позволят семантике выполнение в формальной манере. Результаты этой области исследований показали ограниченное применение в программировании язык дизайна и реализации за пределами научных кругов.