Что означает слово «семантический» в контексте информатики? - PullRequest
21 голосов
/ 28 июля 2010

Я все время сталкиваюсь с употреблением этого слова и никогда не понимаю, как оно употребляется или какое значение он передает.

Фразы типа ...

"добавить семантику для тех, кто читает"

"семантика HTML5"

"семантическая сеть"

"семантически правильный способ ..."

... смущают меня, и я не просто имею в виду Интернет.Является ли слово еще одним способом сказать «грамматика» или «синтаксис»?

Спасибо!

Ответы [ 7 ]

37 голосов
/ 28 июля 2010

Семантика - это значение различных элементов в программе (или что-то еще).

Например, давайте посмотрим на этот код:

int width, numberOfChildren;

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

numberOfChildren = width;

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

22 голосов
/ 28 июля 2010

Синтаксис является структурой.Семантика имеет значение.Каждый отдельный контекст придает термину разный оттенок значения. Например,

HTML 5 имеет новые теги, которые предназначены для придания значения данным, заключенным в теги.Тег <aside> сообщает, что содержащиеся в нем данные тангенциально связаны с информацией вокруг себя.Видите, это значение, а не разметка.

Взгляните на этот список новых семантических тегов HTML 5 .Сравните их со старыми и более знакомыми тегами HTML, такими как <b>, <em>, <pre>, <h1>.Каждый из них будет влиять на внешний вид HTML-контента, отображаемого в браузере, но они не могут сказать нам, почему.Они не содержат информации о значении.

6 голосов
/ 08 октября 2011

Слово «семантический» как прилагательное просто означает «значимый», что очень связано со словом «высокий уровень» в компьютерной науке. Например: Семантическая модель данных: семантическая модель данных, которая имеет смысл и понятна каждому, независимо от его происхождения или опыта. C ++ менее семантический, чем Java, потому что Java использует значимые слова для своих классов, методов и полей. Семантика HTML5: обратитесь к тегам, которые описывают себя так,

и т. Д.

5 голосов
/ 28 июля 2010

Это означает «значение», то, что у вас осталось, когда вы уже учли синтаксис и грамматику.Например, в C ++ i++; определяется грамматикой как допустимое утверждение, но ничего не говорит о том, что он делает.«Увеличение на единицу» - это семантика.

Семантика HTML5 - это то, что правильно сформированное описание HTML5 должно поместить на страницу.«Семантическая сеть» - это, как правило, сеть, в которой ссылки и поиски имеют значение, а не слова.Семантически правильный способ сделать что-то - это то, как это сделать, чтобы это означало правильную вещь.

2 голосов
/ 28 июля 2010

В мире HTML «семантика» используется для того, чтобы говорить о значении тегов, а не просто рассматривать, как выглядит результат. Например, обычно выделяют курсивом иностранные слова, а также выделяют курсивом выделенные слова. Вы можете просто обернуть все иностранные или выделенные слова в теги <i>..</i>, но это только описывает, как они выглядят, но не описывает, почему они выглядят именно так.

Лучшим тегом для выделенного слова является <em>..</em>, поскольку он передает семантику выделения. Браузер (или ваша таблица стилей) может затем отобразить их курсивом, и другие потребители страницы будут знать, что слово выделено. Например, программа чтения с экрана может правильно прочитать его как выделенное слово.

2 голосов
/ 28 июля 2010

Это не просто терминология информатики, и если вы спросите,

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

0 голосов
/ 28 июля 2010

На мой взгляд, это почти похоже на грамматический взгляд на синтаксис.Я не могу говорить о семантике в широком смысле, но когда люди говорят о семантике в Интернете, они обычно ссылаются на идею, что если вы удалите все css, javascript и т. Д .;то, что осталось (HTML-код), имеет смысл читать.

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

Вы не будете использовать h1 для чего-то менее важного, чемh2.Это не имеет смысла.

...