Семантика (программирование)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Сема́нтика в программировании — дисциплина, изучающая формализации значений конструкций языков программирования посредством построения их формальных математических моделей. В качестве инструментов построения таких моделей могут использоваться различные средства, например, математическая логика, λ-исчисление, теория множеств, теория категорий, теория моделей, универсальная алгебра. Формализация семантики языка программирования может использоваться как для описания языка, определения свойств языка, так и для целей формальной верификации программ на этом языке программирования.

Содержание

Общий смысл [править]

Семантика — это смысловое значение слов. В программировании, начальное смысловое значение операторов, основных конструкция языка и т.п.

Пример:

Первый код: 
while(i<5){i++;} 
Второй код: 
if(i<5){i++} if(i<5){i++} if(i<5){i++} if(i<5){i++} …

Логически эти два фрагмента кода выполняют одно и тоже — цикл. Но семантически первый код — это цикл, а второй множество условий, хотя логически, в данном случае, это одно и тоже. Так же например теги:

<h1 style="font-weight:50px;"></h1>
<div style="font-weight:50px;"></div>

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

Подходы [править]

Операционная семантика (англ. operational semantics) используется для синтаксических понятий языка. В ней функции рассматриваются как текстуальные правильно построенные определения, обеспечивающие применение к аргументу, а не как функции в математическом понимании этого термина.
Существует классификация различных видов операционной семантики:
    Интерпретационная семантика - описание операционной семантики конструкций в терминах языков программирования низкого уровня (язык ассемблера, машинный код). Этот способ позволяет выявлять медленно выполняемые участки программы, и зачастую используется в соответствующих фрагментах систем программирования в целях оптимизации кода программ.
    Трансляционная семантика - описание операционной семантики конструкций в терминах языков программирования высокого уровня. С помощью этого способа можно изучать язык, схожий с уже известным программисту.
    Трансформационная семантика - описание операционной семантики конструкций языка в терминах этого же языка. Трансформационная семантика является основой метапрограммирования.

См. также [править]

Литература [править]