Статья 2321

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

Читать дальше
Статья 2319

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

Читать дальше
Статья 2316

Вместо выписывания двоичных цифр для каждой машинной команды программист писал короткое слово или аббревиатуру. Аналогичным образом адреса ячеек памяти, в которых хранились переменные, заменялись на имена, которые этим переменным присваивались. Числовые значения выражались в десятеричной системе. Для слов, обозначающих машинные команды, выбирали легко запоминающиеся слова, так называемые мнемоники.
Первое время перевод с языка ассемблера на [...]

Читать дальше
Статья 373

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

Читать дальше
Статья 371

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

Читать дальше
Статья 369

Вот что писал по этому поводу советский математик Н.М. Нагорный в письме, опубликованном в книге Л.А. Кудрявцева Современная математика и ее преподавание.
Мне кажется, что протекший и никак не зафиксированный процесс в ЭВМ так же мало годится быть элементом доказательства, как и процессы, протекающие в синхрофазотронах, паровозах или, например, в утюгах. То, что ЭВМ является [...]

Читать дальше
Статья 367

Ньоэлла, З. Саймона, Д. Шоу. С помощью программы заново доказаны теоремы одного из разделов математической логики - исчисления высказываний, содержащихся в книге Б. Рассела и А. Уайтхеда. В дальнейшем на ЭВМ с большим быстродействием удалось вывести все теоремы. Достижения неоспоримы, но ведь передоказаны уже доказанные теоремы. А существуют ли теоремы, впервые полученные при помощи [...]

Читать дальше
Статья 365

Однако проверить их все при достаточно сложной схеме путей практически невозможно, поэтому удачное тестирование не дает полной гарантии того, что программа не содержит ошибок.
Такие программы существуют. Например, обсуждается программа выбора оптимального маршрута в Лондонском и Парижском метро, которую с успехом можно применить и для Московского метрополитена.
Вряд ли, однако, выбор неоптимального маршрута поездки в метро [...]

Читать дальше
Статья 363