Почему Лого?

В последнее время язык программирования Лого завоевывает все большую популярность и не только в начальной или средней школе, но и в колледжах, университетах, да и просто в среде любителей интеллектуального досуга. Это справедливо не только для зарубежной системы образования, но и для российской. Чтобы убедиться в этом, достаточно просмотреть журналы "Информатика и образование" за последние пару лет. Объясняя причины этого явления, позволим себе пространную цитату из блестящей книги Брайена Харви, профессора университета Беркли, США, разработчика одной из свободно распространяемых версий Лого — UCB Logo. Этот трехтомный труд у нас не переводился, и, к сожалению, практически не доступен, хотя для зарубежного пользователя Лого он является настольной книгой.

Цитируем по второму изданию книги Brian Harvey, Computer Science Logo Style, The MIT Press, 1997. Глава так и называется — Почему Лого?

Язык Лого стал жертвой собственной популярности в начальной школе. Он приобрел репутацию примитивного языка для младенцев. [...] В действительности, Лого — один из самых мощных (powerful) языков программирования, доступных для домашних компьютеров. Это диалект ЛИСП, языка, применяемого в сложнейших исследовательских проектах в области вычислительной техники и искусственного интеллекта. До последнего времени все книги по Лого были достаточно примитивны и достоинства языка сводились к возможности создания привлекательных картинок, которые и рассеивались по страницам издания.

Что же вкладывается в понятие “мощный язык программирования”?
Это качество не означает, что язык позволяет писать вам программы, выполняющие что-либо, не доступное другим языкам. (В этом смысле все языки схожи. Если вы можете написать программу на Лого, то так или иначе вы можете написать ее на Паскале или Бейсике. Верно и обратное).
Мощность языка программирования — это мера того, насколько язык помогает вам сконцентрироваться, в первую очередь, на конкретной проблеме, которую вы собирались решить, а не на преодолении ограничений, накладываемых самим языком. Например, для С, Паскаля, Java и всех других языков, “выросших” первоначально из Фортрана, программист должен очень точно определять, что, как, и где хранится в памяти компьютера. Если вы хотите собрать 20 чисел вместе и рассматривать их как один объект, вы должны “определить массив”, заявив заранее, что в нем будет хранится в точности 20 чисел. Очень плохо, если в последствии вы передумаете и захотите иметь массив из 21 числа. Вы также должны решить заранее, что ваш массив будет содержать только целые числа, или числа с дробной частью, или же это будет символьный массив, и вы не можете смешивать данные разных типов в одном массиве. Для Лого процесс размещения данных в памяти компьютера является полностью автоматическим. Если ваша программа создала список из 20 чисел, память для его хранения отведется автоматически, без всяких усилий с вашей стороны. Если позже вы захотели добавить 21-е число, это также делается автоматически.

[...]

Не случайно Лого оказался более мощным языком, чем Паскаль или С++, и произошло это вовсе не потому, что его разработчики более умны и изобретательны. Фортран был разработан до того, как математические основы программирования были хорошо осознаны, и его конструкции являются отражением возможностей (и недостатков) компьютеров того времени. “Фундамент” языков, выросших из Фортрана, не изменился и до сих пор, хотя худшие его дефекты были “залатаны” в последних версиях, например, Java и С++. Более мощные языки базируются на конкретных математических моделях и реализуют эти модели в полной мере. Например, АПЛ базируется на идее матричной обработки; Пролог — на исчислении предикатов (раздел математической логики). Лого, как и ЛИСП, базируется на идее композиции функций (composition of functions)

[...]

Конец цитаты.


Вернуться