Языки

Определение и классификация языков

Язык — это определенная система символьного представления информации. В словаре по школьной информатике, составленном А.П. Ершовым [6], дано такое определение: “Язык — множество символов и совокупность правил, определяющих способы составления из этих символов осмысленных сообщений”. Поскольку под осмысленным сообщением понимается информация, то данное определение по сути своей совпадает с первым.

Языки делятся на две группы: естественные и формальные. Естественные языки — это исторически сложившиеся языки национальной речи. Для большинства современных языков характерно наличие устной и письменной форм речи. Анализ естественных языков в большей степени является предметом филологических наук, в частности, лингвистики. В информатике анализом естественных языков занимаются специалисты в области искусственного интеллекта. Одна из целей разработки проекта ЭВМ пятого поколения — научить компьютер понимать естественные языки.

Формальные языки — это искусственно созданные языки для профессионального применения. Они, как правило, носят международный характер и имеют письменную форму. Примерами таких языков являются язык математики, язык химических формул, нотная грамота — язык музыки и др.

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

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

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

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

Языки информатики

Далее речь пойдет о языках, используемых при работе ЭВМ, в компьютерных информационных технологиях.

Информация, циркулирующая в компьютере, делится на два вида: обрабатываемая информация (данные) и информация, управляющая работой компьютера (команды, программы, операторы).

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

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

В самом общем смысле можно сказать, что языком представления данных ЭВМ является язык двоичных кодов. Однако с точки зрения приведенных выше свойств, которыми должен обладать всякий язык: алфавита, синтаксиса, семантики, прагматики, — нельзя говорить об одном общем языке двоичных кодов. Общим в нем является лишь двоичный алфавит: 0 и 1. Но для различных типов данных различаются правила синтаксиса и семантики языка внутреннего представления. Одна и та же последовательность двоичных цифр для разных типов данных имеет совсем разный смысл. Например, двоичный код “0100000100101011” на языке представления целых чисел обозначает десятичное число 16 683, а на языке представления символьных данных обозначает два символа — “А+”. Таким образом, для разных типов данных используются разные языки внутреннего представления. Все они имеют двоичный алфавит, но различаются интерпретацией символьных последовательностей.

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

Внутренним языком представления действий над данными (языком управления работой компьютера) является командный язык процессора ЭВМ. К внешним языкам представления действий над данными относятся языки программирования высокого уровнявходные языки пакетов прикладных программкомандные языки операционных системязыки манипулирования данными в СУБД и пр.

Любой язык программирования высокого уровня включает в себя как средства представления данных — раздел данных, так и средства представления действий над данными — раздел операторов (см. “Языки программирования” ). То же самое относится и к другим перечисленным выше типам компьютерных языков.

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

Методические рекомендации

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

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

Следует обращать внимание учеников на общность некоторых языковых конструкций, используемых в различных технологиях. Например, правила записи формул в электронных таблицах и арифметических выражений в языках программирования практически одинаковы. Существуют и различия, на которые тоже следует обращать внимание. Например, в языках программирования логические связки (NOT, AND, OR) являются знаками операций, а в электронных таблицах — именами функций.

Для упрощения работы пользователя в современном программном обеспечении часто применяются различного рода оболочки, обеспечивающие удобный пользовательский интерфейс. Следует объяснять ученикам, что за этими оболочками, как правило, скрыт определенный формализованный язык. Например, за графической оболочкой операционной системы Windows скрывается командный язык ОС. Другой пример: СУБД MS Access предоставляет пользователю возможность для создания БД использовать конструктор таблиц, а для построения запросов — конструктор запросов. Однако за этими высокоуровневыми средствами “скрывается” SQL — универсальный язык описания данных и манипулирования данными. Перейдя в соответствующий режим, можно показать, как выглядят команды на SQL, сформированные в результате работы с конструктором.