Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
knigi_docv / Паронджанов Как улучшить работу ума.doc
Скачиваний:
101
Добавлен:
21.03.2015
Размер:
15.07 Mб
Скачать

Гипотеза о будущем императивных языков программирования

Обобщая материалы, автор не удержался от соблазна заглянуть в будущее и в порядке предварительного обсуждения высказать свои, возможно, ошибочные предположения о путях развития императивных языков, которые излагаются ниже в форме восьми тезисов.

  • Несмотря на резкую критику со стороны Джона Бэкуса и ряда других ученых фон-неймановские (императивные) языки по-прежнему находят широкое применение и продолжают занимать прочные, а в некоторых областях — господствующие позиции. Логично предположить, что такая или примерно такая ситуация сохранится и впредь. Сходную позицию занимают и другие авторы, по мнению которых императивные языки “в обозримом будущем сохранят доминирующее положение в практическом программировании” [14].

  • В грядущем столетии вследствие дальнейшего уменьшения удельной стоимости аппаратуры у многих персональных компьютеров экраны, по-видимому, увеличатся до размеров письменного стола, что облегчит визуализацию программирования за счет возможности непосредственной работы с чертежами формата А1 или даже А0 на экране ПЭВМ по принципу WYSIWYGWhat You See Is What You Get(Что видишь, то и имеешь). Согласно развиваемой гипотезе, это позволит более полно использовать телесный угол и структуру человеческого поля зрения, покончить наконец с систематическим недоиспользованием богатейших возможностей человеческого глаза, задействовать мощные резервы симультанного восприятия и тем самым значительно увеличить скорость работы и продуктивность мозгапрограммистов и пользователей. Учитывая эти соображения и остроту проблемы производительности труда в программировании, мы предполагаем, что ожидаемое увеличение габаритов экранов даст мощный стимул для широкомасштабной замены текстовых императивных языков на визуальные.

  • Если допустить, что визуализация императивных языков неизбежна, целесообразно проводить ее не стихийно, а по заранее намеченному и согласованному плану, одной из целей которого следует считать частичную унификацию языков.

  • В связи с этим возникает вопрос: можно ли унифицировать (хотя бы частично) императивные языки программирования? Существует ли возможность выделить некий инвариант, который можно заранее ввести в состав всех или почти всех визуальных императивных языков? С точки зрения шампур-метода, любой визуальный императивный язык включает три языка: маршрутный, командный и декларативный (см. гл. 12).

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

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

  • Стандартизация выделенного инварианта императивных языков осуществляется благодаря использованию стандартных шампур-редакторов, применение которых должно регламентироваться процедурой сертификации, согласованной с международной организацией стандартизацииISO. Опыт создания национальных и между­народных стандартов на блок-схемы и их повсеместного использования позволяет надеяться на успех предлагаемого предприятия.

  • Очевидно, в принципе можно построить компилятор, преобразующий чертеж шампур-программы непосредственно в ассемблер и объектный код, без промежуточного преобразования в исходный текст языка высокого уровня. Не исключено, что прогнозируемый процесс визуализации программирования и образование на этой основе нового поколения (визуальных) императивных языков создаст предпосылки, при которых подобная прямая компиляция во многих случаях окажется более предпочтительной. В подобных ситуациях понятиеисходный текст программы, видимо, полностьюисчезнет из лексикона “императивных” программистов, уступив место терминуисходный чертеж программы.