Непейвода Н.Н. Программирование. Раздел 1

Непейвода Н.Н. Программирование. Страница 63

• Считать саму програмліутранслятор описанием языка. Тут вроде бы сразу точно описаны и тексты, и их интерпретация (правильная про­грамма — та, на которой транслятор не выдает ошибки; интерпретация программы — то, как исполняется ее текст после перевода транслято­ром).

Именно так пытались поступать на заре программирования, когда, скажем, легендарный язык FORTRANсоздавался вместе и одновре­менно с первым транслятором с данного языка. Но это — совершенно неудовлетворительный путь, поскольку всякое случайное изменение в программетрансляторе может полностью изменить смысл некоторых конструкций языка со всеми вытекающими из этого последствиями.

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

#include<stdio.h>

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

Считать определением языка формальную лингвистическую систему (грамматику).

Это соответствует взгляду на язык как на множество правильных по­следовательностей символов, изложенному на стр. 6. Мы выделяем некоторое множество правильных (синтаксически) программ Lи опи­сываем его формально. Если это описание явное, оно может быть понято человеком и использовано для построения либо для контроля правильности работы транслятора. Но синтаксическая правильность не гарантирует даже осмысленности программы. Таким образом, здесь определяется лишь одна сторона языка —синтаксис.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета &quot;Ангара-А5В&quot; в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие &quot;Крокодилы&quot;

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама