Шестая часть тут.
Рассмотрим процесс, который вы используете для чтения этой лекции. Вы изучаете набор меток, созданных для контраста с физическим носителем-чернилами на бумаге. Эти знаки представляют собой определенные символы, которые вы затем интерпретируете как буквы. Эти буквы, в свою очередь, вы можете сложить вместе, используя правила интервалов и компоновки, чтобы сформировать слова. Слова, через знаки препинания и интервалы, вы можете сформировать в предложения.
На каждом этапе процесса существует несколько видов взаимодействующих вещей:
- Физический носитель, на который может быть наложен сигнал.
- Символическое представление единиц информации, используемых для перевода физических символов в первый уровень логического содержания. При интерпретации символов необходимы две вещи: словарь, который описывает диапазон возможных логических символов, которые могут соответствовать определенному физическому состоянию, и грамматика, которая описывает, как определить, какой логический символ относится к этому экземпляру физического состояния. Эти две вещи, вместе взятые, можно описать как протокол.
- Способ преобразования символов в слова, а затем слова в предложения. Опять же, это будет состоять из двух компонентов, словаря и грамматики. Опять же, они могут быть описаны как протоколы.
По мере перемещения «вверх по стеку» от физического к буквам, к словам, к предложениям и т. д. словарь становится менее важным, а грамматика, которая позволяет преобразовывать контекст в значение, более важной - но эти две вещи существуют на каждом уровне процесса чтения. Словарь и грамматика считаются двумя различными формами метаданных, которые вы можете использовать для превращения физических представлений в предложения, мысли, аргументы и т. д.
Цифровая грамматика и словари.
На самом деле нет большой разницы между человеческим языком, таким как тот, который вы сейчас читаете, и цифровым языком. Однако цифровой язык не называется языком; это называется протоколом. Более формально:
Протокол — это словарь и грамматика (метаданные), используемые для перевода одного вида информации в другой.
Протоколы, конечно, не работают только в одном направлении; их можно использовать как для кодирования, так и для декодирования информации. Языки, вероятно, самая распространенная форма протокола, с которой вы сталкиваетесь ежедневно, но есть много других, таких как дорожные знаки; пользовательские интерфейсы на вашем тостере, компьютере и мобильных устройствах; и каждый человеческий язык.
Поскольку вы разрабатываете протокол, который в первую очередь означает разработку словаря и грамматики, вы можете работать над двумя видами оптимизации:
- Эффективность использования ресурсов. Сколько ресурсов используется для кодирования любого конкретного бита информации? Чем больше метаданных включено в систему вместе с самими данными, тем эффективнее будет кодирование—но тем больше реализаций будут полагаться на словари для декодирования информации. Протоколы, использующие очень малые сигналы для кодирования большого количества информации, обычно считаются компактными.
- Гибкость. В реальном мире все меняется. Протоколы должны быть каким-то образом разработаны, чтобы иметь дело с изменениями. Компромисс метаданных - один из многих, которые вы найдете в сетевой инженерии; либо включите больше метаданных, позволяя протоколу лучше справляться с будущими требованиями, либо включите меньше метаданных, делая протокол более эффективным и компактным.
Словарь в протоколе — это таблица цифровых шаблонов для символов и операций. Пожалуй, наиболее часто используемые цифровые словари — это коды символов. Таблица 1 воспроизводит часть словаря символов Unicode.
Используя таблицу 1, если компьютер «читает» массив, представляющий собой серию букв, он распечатает (или обработает в процессе обработки) число 6, если число в массиве равно 0023, число 7, если число в массиве равно 0024 и т. д. Эта таблица, или словарь, связывает определенные числа с определенными символами в алфавите, точно так же, как словарь связывает слово с диапазоном значений.
Как компьютер может определить разницу между ценой банана и буквами в слове банан? Через контекст информации. Например, возможно, что рассматриваемый массив хранится в виде строки или серии букв; массив, хранящийся в виде строковой переменной, предоставляет метаданные или контекст, который указывает, что значения в этих конкретных ячейках памяти должны рассматриваться как буквы, а не числовые значения, содержащиеся в массиве. Эти метаданные, обрабатываемые компьютером, обеспечивают грамматику протокола.
В протоколах словари часто выражаются в терминах того, что содержит то или иное конкретное поле в пакете, а грамматики часто выражаются в терминах того, как пакет построен или какие поля содержатся в каких местах пакета.
Есть несколько способов создания словарей и базовых (первого уровня) грамматик.