Comments 21
Вклад такого человека, который в принципе занимался любимым делом - огромный. У меня был похожий учитель-инженер, который мою жизнь в эту область направил.
Немного хочу затронуть не его вклад, а то как это описано в статье.
Главным отличием Лексикона от языков программирования должна была стать его открытость для других разработчиков. Ему не нужно было транслироваться в машинную программу, но при этом любую машинную программу можно было бы выразить в Лексиконе.
Не совсем понятно, о какой закрылоси других языков программирования идёт речь. Вроде все языки были не по замком. Или в это слово вкладывался другой смысл? И ещё- как что-то написанное не транслировать в машинный код, если ты хочешь, чтобы машина это выполнила?
К сожалению, идея так и осталась идеей. Но Ершов задал направление для других учёных на десятки лет вперёд.
В чем заключалось задавание направления не совсем понятно. Или это выражение для красного словца.
Ему не нужно было транслироваться в машинную программу, но при этом любую машинную программу можно было бы выразить в Лексиконе.
Насколько я понимаю, смысл слов такой.
Если перед вами машинная программа, её текст скрыт от вас. Если перед вами программа на C#, а вы знаете только PostScript, её текст скрыт от вас. Если перед вами программа на LaTeX, а вы знаете только Java, её текст скрыт от вас.
Но если вы освоили Лексикон, то любую программу можно автоматически выразить на языке Лексикон, перевести на него. То есть любой текст программы будет открытым для вашего понимания.
А для того, чтобы запустить программу на Лексиконе, не нужен никакой машинный код. Вы получаете текст программы и выполняете его. Тем самым текст полученной программы тоже будет открыт для вас.
(Не обещаю, что всё понял правильно.)
Прочитав 2 статьи Ершова по этой теме и множество обзоров, я вижу, что в целом Ершов не очень подробно рассказывает про Лексикон, а авторы обзоров не стараются его понимать. Поэтому добавлю ещё.
1) Ершов начинает с того, что к 1980 году уже есть программирование как промышленность, люди пишут программы на разных языках, на разных машинах, для разных задач. Но вот беда, совсем плохо с теорией программирования. Можно натренировать программиста на конкретном языке или для конкретных задач, однако едва ли можно обучить универсального программиста для решения произвольной задачи.
2) Во многом эта проблема возникла, потому что языки программирования были созданы слишком конкретно. Одни для обучения, другие для моделирования алгоритмов, третьи для конкретной машины, четвёртые для конкретной области применения, пятые для 640 килобайт памяти, шестые для принтера, и так далее. Эти языки программирования служат инструментами для решения задач и призваны этими задачами. Это инструменты.
3) А нужен совсем другой язык программирования. Да чего уж там, нужен вовсе не язык программирования. Нужно понимать, как устроено и работает программирование. Нужно понимать, как устроены и работают алгоритмы. Для этого нужна в первую очередь общая теоретическая наука о программировании. Ну, вот как есть наука о медицине или наука о математике.
4) Такая наука состоит из понятий, из символов и терминов (для выражения понятий), из логических взаимосвязей. Проще говоря, у каждой науки есть свой язык, у науки о программировании тоже будет свой язык. Не конкретный язык программирования, а вообще язык о программировании любой программы, любой модели, любой схемы, любого алгоритма, любой процедуры.
5) Язык программирования содержит в себе противоречие. Он хорош и быстр и эффектен, когда сведён к машинному языку, когда он удобно транслируется в машинный язык. Хорош, однако не удобен. А удобен он, когда сведён к понятийному языку программиста, когда на нём удобно записывать модель данных и модель процесса. Однако такой язык трудно транслировать в машинный язык, машина-то не приспособлена к модели процесса и к модели данных. Вот такое противоречие. Решить его нельзя, поэтому надо от него удалиться. Но куда?
6) Науку делают люди, поэтому надо удалиться к наиболее удобному языку, в котором можно записывать любую модель данных и любые процессы. Это будет очень, очень высокоуровневый язык, который едва ли можно компилировать. Это будет язык науки, Лексикон. Компилировать нельзя, зато можно выразить всё, что делает конкретный язык программирования и конкретная машина. То есть любая практическая программа может быть записана в терминах и символах и структурах этого Лексикона.
7) Для компиляции его надо будет перевести в какой-нибудь язык программирования. В какой? А смотря по запросу заказчика. Если у заказчика всё уже написано на Фортране, тогда можно переводить с Лексикона на фортран. Если у заказчика всё уже написано на Алголе, можно переводить с Лексикона на алгол. Если заказчику нравится ещё что, можно и туда переводить.
8) Да, но зачем вообще нужен Лексикон, если с него обязательно надо переводить в ЯП, а потом ещё и компилировать? О! Лексикон нужен, во-первых, для научного изучения самого программирования, а во-вторых, для доказывания программ. Потому что Лексикон позволит не только то, что нужно машинным программистам (создателям языков программирования), но и то, что нужно академическим исследователям (создателям теорем и алгоритмов). Всё остальное он тоже позволит.
9) Мне кажется, это близко к буквальному (literate) программированию Кнута. Ещё мне кажется, что все рассуждения об этом Лексиконе были сделаны, когда про оконный и графический интерфейс ещё не думали, а беспокоились доказыванием верности программы.
Может быть, я туманно написал этот комментарий, но видит бог, у академика Ершова ясности ничуть не больше. Если кто понимает лучше меня, пусть напишет своё воззрение, а там, глядишь, мы сочиним общую статью для Хабра про это всё.
непонятно в какую область переехал, была ли такая в 37 году?
использовали алголоподобный Русский алгоритмический язык
По-моему это Паскаль на кириллице.
В учебнике также описывались Рапира и Бейсик:
синий учебник как то не впечатлял, наверно совта у нас под него не было ... Современые намного полезней по моему :-))
Когда у вас из технического обеспечения уроков информатики только бумага и карандаш, то вполне годится. Книжка рассказывает что такое ЭВМ и программы. (страница 141)
Фантасты, которые силой своего воображения уже побывали в XXI в., утверждают, что в будущем человека, не знающего точных наук, с полным правом можно будет сравнить с неграмотным средневековым бароном, который с гордостью говорил, что счетом и письмом у него занимаются секретари.
То же должно случиться и с программированием. Каждый специалист, в какой бы области науки, производства и т. д. он ни работал, должен будет уметь эффективно использовать ЭВМ, уметь программировать, что и называется второй грамотностью.
Итак, мы переходим от мира машин к миру программ.
не не, тут не про бумагу про то что вот по стране развозят кувты, а с рапирой на них напряги, только бейсик дали... .... У других может и по другому было
В 1987 году компьютерные классы БК-0010-01 ставили.
Всякие я думаю, и ямахи, и 0511 ;-))
Но бумага точно везде была не дефицит :)
В других книгах того времени ЭВМ только упоминается что где-то это есть, а основной инструмент расчетов — микрокалькулятор. Практический — таблицы Брадиса :)
Про дружбу с другим титаном, Дональдом Кнутом, который выучил русский язык, чтобы читать работы Ершова, и про симпозиум в областном центре Хорезмской области Ургенче, на родине Аль-Хорезми, от которого образовано слово "алгоритм", в ходе которого Кнут сотоварищи собирали хлопок на колхозном поле — ни слова.
Знаменитое изречение А.П.Ершова (972 год, статья «О человеческом и эстетическом факторах в программировании»):
Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единиц. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов — с трезвой практичностью экономиста. А кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и многое другое…
считалось мировым стандартом на программиста на кафедре программирования Военной академии им. Ф.Э. Дзержинского (см. в верхнем правом углу):
Именно так нас учили программированию.
Именно так и попал в Программирование.. 1979год, 1-курс, первое занятие у него.. в классе НГУ целых 8 терминалов на одну единственную М-222М (если память не изменяет), у каждого мелкий цветной телевизор "графический дисплей" 256х256 точек и .. Фортран-2 со своей средой программирования (первые ИДЕ? почему про них нигде нет ни слова?!?) .. и знаменитая клавиша "Send" у терминала .. -"Кто опять нажал сенд, не поставив конец текста?".. Как попал, так и залип. Под его руковдством писалась моя первая игрушка "угадай число", точнее компьютерный игрок. Да, да тот самый Фортран-2 и 6(шесть) килослов ОЗУ..
Эх, были люди в наше время ..
Рапира и Школьница, во времена жизни Агатов имели просто коллосальный успех у всего Новосибирска, не знаю как дальше. НГК .. ПО для композиторов, способное писать музыку и аранжировки.. ну, может не писать, но обучать точно: визуальное представление нотных последовательностей как (не)стыкующихся геометрических фигур на нотном стане.. кмк, гениально. Возможность импортировать в свою разработку ПО, принесенное на дискетах ..
.. "сказочник" .. на корпусе сказок, разбитых на предложения, словосочетания с шаблонными подстановками .. "Посадил(а) %герой% %репку% .. и пош(е)л(а) к %бабушке% через лес... повстречал %герой% %волка%, и говорит ему %волк%: .. я тебя сьем! .. "
Иногда получалось смешно, а иногда даже и интересно. Примерно чем-то таким занимается и современный "ИИ". Корпус обучения побольше, шаблонизатор параметризован помощнее, плюсом дополнительные фичи и "умности".. но, как было оно "сказочником" с Агатов, да так и осталось. ;)
.. ностальжи.. Жаль, что его давно нет с нами. :(
Имел честь видеться с Андреем Петровичем летом 1985 года в Новосибирске в ШЮП (школа юного программиста),. Конечно, тогда ещё у меня, споливого школьника, не было ощущения встречи с человеком-легендой. Но тем не менее, именно эта школа во многом оказала влияние на судьбу - уже 35 лет в ИТ. Светлая память светлому Человеку.
Люди часто вообще не понимают, какую роль в их судьбе сыграл этот человек своим подвижничеством. В судьбе буквально каждого жителя на территории бывшего СССР. Общество благодаря ему сделало рывок во внедрении повальной компьютерной грамотности, причём очень вовремя, успели в последний вагон. И вот какой результат теперь имеем. Ему памятник в центре Москвы надо поставить, и всей команде его.
«Программирование — вторая грамотность». К 92-летию со дня рождения ученого-программиста Андрея Петровича Ершова