вопросы диагностики
Jan. 7th, 2015 10:39 amВо втором документе из http://ramlamyammambam.livejournal.com/323487.html
http://keldysh.ru/papers/2014/prep2014_37.pdf
http://keldysh.ru/papers/2014/prep2014_38.pdf
:
<<
Вспоминается случай большого напряжения, когда уже близко к моменту начала полёта к Марсу мы на протяжении долгого времени не могли найти ошибку в колоде перфокарт с алгольной теорией движения Фобоса и Деймоса, присланной нам из Института теоретической астрономии. Героем найденной ошибки стал В.Б. Бритков, который, непрерывно транслируя эту колоду, методом деления пополам выделил, наконец, ту единственную перфокарту с ошибкой. На перфокарте – несколько операторов Алгола. И вот – на протяжении недели не менее 5 пар глаз безуспешно пытались найти причину непонятных сообщений транслятора об ошибке. Причиной оказалась тривиальной: вместо квадратных скобок в некоем месте перфокарты были набиты фигурные! Ситуация со скобками Алгола знакома многим, а нам после этой истории – особенно...
>>
Это не логическая ошибка в программе, а тупо синтаксическая. Которую искали неделями. Наводит на размышления об уровне сообщений об ошибках в тогдашних компиляторах. Даже номер строки с ошибкой, очевидно, не выдавался, не говоря уже о том, что именно не так.
Ну и кстати, прислать программу, которая не компилируется? Видимо, вопрос о том, правильно ли она работает, тем более не проверялся.
http://keldysh.ru/papers/2014/prep2014_37.pdf
http://keldysh.ru/papers/2014/prep2014_38.pdf
:
<<
Вспоминается случай большого напряжения, когда уже близко к моменту начала полёта к Марсу мы на протяжении долгого времени не могли найти ошибку в колоде перфокарт с алгольной теорией движения Фобоса и Деймоса, присланной нам из Института теоретической астрономии. Героем найденной ошибки стал В.Б. Бритков, который, непрерывно транслируя эту колоду, методом деления пополам выделил, наконец, ту единственную перфокарту с ошибкой. На перфокарте – несколько операторов Алгола. И вот – на протяжении недели не менее 5 пар глаз безуспешно пытались найти причину непонятных сообщений транслятора об ошибке. Причиной оказалась тривиальной: вместо квадратных скобок в некоем месте перфокарты были набиты фигурные! Ситуация со скобками Алгола знакома многим, а нам после этой истории – особенно...
>>
Это не логическая ошибка в программе, а тупо синтаксическая. Которую искали неделями. Наводит на размышления об уровне сообщений об ошибках в тогдашних компиляторах. Даже номер строки с ошибкой, очевидно, не выдавался, не говоря уже о том, что именно не так.
Ну и кстати, прислать программу, которая не компилируется? Видимо, вопрос о том, правильно ли она работает, тем более не проверялся.
no subject
Date: 2015-01-07 07:08 pm (UTC)Потом этот алгол улучшили, конечно, и на АЦПУ уже вполне приличные сообщения об ошибках выдавались.
Послали же то, что было готово в срок. Как сказала однажды моя начальница, "программа разработана, но еще не написана".
no subject
Date: 2015-01-07 07:16 pm (UTC)Я так понимаю, что проблема в другом: это были ранние времена использования формальных грамматик. И находить несоответствие текста грамматике уже научились, а вести и выдавать детальную диагностику про где именно находится синтаксическая ошибка - еще не догадались.
no subject
Date: 2015-01-07 11:03 pm (UTC)Исходя из способностей тогдашних компиляторов, предположу, что неправильной была лишь одна скобка (например, круглая вместо квадратной), и компилятор сходил с ума, пытаясь найти закрывающую скобку, соответствующую открывающей. Понятно, что из сообщения типа "отсутствует закрывающая скобка в строке N", где N - номер последней строки или на 1 больше, много не выжмешь.
no subject
Date: 2015-01-07 11:09 pm (UTC)no subject
Date: 2015-01-08 12:16 am (UTC)Идея фигурных скобок могла возникнуть только с распространением ASCII/ISO, но в русских вариантах этих кодировок на месте фигурных скобок были буквы Ш и Щ. Паскалевские {* ... *} превратились в (* ... *), а { ... } исчезли совсем.
no subject
Date: 2015-01-08 06:09 am (UTC)no subject
Date: 2015-01-08 09:23 am (UTC)Но очевидно, что там были не фигурные скобки, а что-то допустимое, иначе алгол тут же выругался бы "в языке нет символа зю" и указал бы на правильную строку.
no subject
Date: 2015-01-08 10:00 am (UTC)no subject
Date: 2015-01-08 04:12 pm (UTC)Ну а что касается диагностики, то тут наверное как всегда: наверное компилятор писали люди, постигшие computer science, но не постигшие software engineering. Software engineering - гораздо более сложная дисциплина.
no subject
Date: 2015-01-08 04:13 pm (UTC)Кстати, если взять несоответствующую пару скобок, например [ ) или ( ], то неправильная закрывающая скобка тоже должна дать синтаксическую ощибку.
no subject
Date: 2015-01-08 04:13 pm (UTC)no subject
Date: 2015-01-08 04:37 pm (UTC)В идеале, конечно, неправильная закрывающая скобка должна дать ошибку, но если перфораторщица прочитала какое-нибудь a[1]+b как a[13+b, то опаньки. Первым неправильным символом может быть точка с запятой или end (в алголе точка с запятой не терминатор, а разделитель операторов), и что-нибудь могло быть упущено из рассмотрения.
no subject
Date: 2015-01-09 12:02 pm (UTC)no subject
Date: 2015-01-09 09:47 pm (UTC)no subject
Date: 2015-01-09 10:00 pm (UTC)И я думаю, проблема управления общими библиотеками не сильно сложнее какого-нибудь добротного алгоритма на деревьях, при этом алгоритмы на деревьях обычно учитывают опыт предшественников и стараются улучшить, а в SE часто считается, что лучше написать с нуля и своё (не обязательно лучше, главное, своё).
no subject
Date: 2015-01-09 10:26 pm (UTC)Проблема гораздо сложнее, там главная сложность: нам надо использовать библиотеку A и библиотеку B, они обе хотят библиотеку C, но A хочет C в версии X, а B хочет C в версии Y.
Ну, это не говоря уже об установке всех зависимостей и их разделении, неразделении и конфликтах.
no subject
Date: 2015-01-09 10:39 pm (UTC)