С.Бобровский, О Фортране и других языках программирования, страница 6
Описание файла
Документ из архива "С.Бобровский, О Фортране и других языках программирования", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "С.Бобровский, О Фортране и других языках программирования"
Текст 6 страницы из документа "С.Бобровский, О Фортране и других языках программирования"
По мощности Perl значительно превосходит С. Кроме того, в язык в качестве стандартных введено много часто используемых функций работы со строками, массивами, всевозможные средства преобразования данных, управления процессами, работы с системной информацией и других. Виртуальная PerZ-машина позволяет работать с произвольными по величине данными, а интерпретатор языка оптимизирован для быстрого сканирования текста. В него также встроена поддержка более безопасного выполнения программ в сравнении с С. Например, выход указателя за границы массива не приведет к порче памяти. Глубина рекурсии, без которой обрабатывать тексты и списки неудобно, не ограничена.
При работе с большими массивами текстовых строк, которые требуются, например, при считывании файлов в буфер, используются хэш-массивы. Они позволяют очень быстро сканировать объемные тексты и эффективно осуществлять операции сопоставления с образцом, для чего используются специальные эвристические алгоритмы. Встроены в Perl разнообразные и понятные любому программисту функции поддержки работы в сети, как локальной, так и глобальной.
Благодаря наличию в языке Perl мощных встроенных средств обработки данных этот язык легко осваивают начинающие пользователи. Если человек знает С, то перейти на Perl ему не составит никакого труда. С другой стороны, в погоне за мощностью язык Perl усугубил и без того не слишком наглядный процесс программирования на С. Иногда сложно понять, что делает программа, уместившаяся в трех строчках. С учетом этих особенностей язык Perl редко используют для коллективной разработки больших программ, да он для этого и не предназначался.
Скорее, этот язык подходит для создания всевозможных утилит и особенно Web-сценариев. Популярность этого языка резко пошла вверх, когда сеть Интернет стала все больше восприниматься как Всемирная Паутина. Текстовый язык HTML идеально подходил для анализа и генерации Wife-страниц с помощью сценариев Perl. Эти особенности языка в сочетании с поддержкой передачи данных в Сети через кокеты и возможностью обращения к функциям операционной системы сделали этот язык одним из самых популярных языков программирования для Интернета. Сегодня на языке Perl написаны тысячи сценариев, которые активно используются во всем мире. В частности, всевозможные счетчики, формы запросов с произвольной структурой управляющих элементов или утилиты поиска на Web-узле страниц с заданными ключевыми словами занимают всего несколько сотен (до 500) строк кода. Поэтому многие провайдеры поддерживают Perl, правда, обычно требуя, чтобы пользователи предварительно отдавали свои сценарии ЖеЬ-мастеру на тестирование.
Имеются реализации Perl в виде языка сценариев, которые вставляются в исходном виде в код HTML наподобие сценариев JavaScript. Здесь надо отметить принципиальное отличие обычной Peri-программы, которая хоть и распространяется только в исходных текстах, но выполняется целиком на сервере, от сценария PerlScript, интерпретацию которого берет на себя клиентская машина.
Интересно, что многие PerZ-программисты считают язык Java, более раскрученный для программирования в Сети, бесперспективным. На изучение более мощного языка Perl требуется значительно меньше времени, чем на изучение Java. Если же необходимо написать большую программу для Сети, можно использовать более знакомый Си++. Конечно, язык Java имеет и ряд преимуществ, но он вовсе не конкурирует с языком Perl, занимая совершенно другую нишу. Программы на языке Java представляют собой интерпретируемый двоичный код. На этом языке можно написать, например, сетевую игрушку, но все государственные организации, особенно имеющие отношение к национальной безопасности, никогда не запустят на своей сети непроверенный двоичный Java-код, так как бреши есть в любой программной системе. А программы на Perl распространяются в исходных текстах — таково требование создателя языка — и профессиональным программистам не представляет труда протестировать их.
Победил Perl и другого конкурента. Для сложной обработки текстов долгое время использовался язык СНОБОЛ, созданный в начале 1960-х годов. Он обладает очень мощными средствами сопоставления с образцом, ориентированными на анализ текстовой информации. Но с появлением персональных компьютеров СНОБОЛ полностью отошел на второй план, так как был ориентирован на пакетную обработку данных. В нем совершенно отсутствуют средства поддержки пользовательского интерфейса, а, кроме того, по синтаксису текст программы на СНОБОЛе напоминает текст на Фортране из-за обилия меток, которые определяют результат сопоставления (переход по успеху/неуспеху). Программа выглядит слишком запутанной по сравнению с элегантным кодом Perl.
Распространялся и распространяется язык Perl только бесплатно — таково условие его создателя. Этот язык уже давно перерос рамки проекта GNU (свободно распространяемое программное обеспечение для Unix/Linux), в рамках которого был создан первоначально. Поддержку пользователей, разработку новых версий интерпретаторов и компиляторов для своего любимого языка PerZ-программисты осуществляют бесплатно. В конце 90-х годов вышла пятая версия Perl. Реализация языка была полностью пересмотрена автором. Изменился синтаксис Perl — добавились конструкции, упрощающие чтение исходного кода. Значительно информативнее стали предупреждения и сообщения об ошибках. Грамматика, описывающая Perl 5.x, сократилась в два раза. Почти на две трети уменьшилось количество ключевых слов. При этом сохраняется полная совместимость синтаксиса со старыми версиями языка. Кроме того, стало возможным создавать двоичные PerZ-модули с помощью компилятора, хотя такая особенность востребована в основном в задачах, где на первый план выходит производительность работы системы.
В пятой версии Perl сделана попытка сориентировать язык на создание достаточно крупных программ. Введено понятие пакета для поддержки модульной структуры. Пакеты могут трактоваться как классы с виртуальными методами — в языке реализованы основные понятия объектно-ориентированного программирования. Расширен список баз данных, к которым в языке Perl организован встроенный доступ. С помощью документированного PerZ-интерфейса можно части кода на этом языке встраивать в программы на C/C++ и, наоборот, подключать библиотеки Си к PerZ-программам.
На момент написания книги (начало 2003 года) вышла версия языка Perl 5.8.O. Она характеризуется улучшенной поддержкой текста в формате Unicode, оптимизированными режимами ввода/вывода, возможностью эффективного выполнения нескольких процессов, повышенной точностью вычислений с плавающей запятой. РегГ-система без проблем работает под управлением Unix/Linux, Windows, VMS, OS/2,AmigaOS, на ряде 64-разрядных платформ.
Грядет и шестая версия Perl. Ларри Уолл решил, что она будет создана уже не им одним, а всем сообществом Регl-программистов. В результате должна появиться универсальная система, по идеологии напоминающая систему Java. Сценарий на Perl 6 будет преобразован компилятором в переносимый байт-код. Самое главное, чтоРегl-технология позволит готовить программу на любых языках программирования. Такое решение, получившее название Parrot, доступно в виде альфа-версии 0.0.9 на сайте www.parrotcode.org. Пока оно объединяет три компилятора.
Получить подробную информацию о текущей, пятой версии Perl можно по адресу www.perl.org.
Так-тикль — язык системной интеграции
В университете Беркли (штат Калифорния) в конце 80-х годов работал уже упоминавшийся Джон Аустираут, в то время известный не более своих коллег. Сегодня же его знает большинство программистов всего мира, так как именно он придумал популярный скрипт-язык Tel и библиотеку Tk. Впервые идея языка Tel (Tool Command Language, произносится «тикль») пришла в голову Аустирауту в 1987 году. В Tel он попытался воплотить свое видение идеального скрипт-языка, и в дальнейшем всемирная популярность Tel подтвердила правильность его взглядов. Первая работающая версия языка появилась в 1989 году, библиотека Tk вышла в 1991 году. Реализация Tel чаще всего исполняется в виде встраиваемой в приложения библиотеки на С, содержащей интерпретатор Tel.
Язык Tel синтаксически немного похож на Perl. Он ориентирован преимущественно на автоматизацию рутинных процессов операционной системы и крупных программных систем. Он содержит мощные команды, предназначенные для работы с абстрактными нетипизированными объектами. Принципиальные отличия языка Tel от командных языков операционной системы — его независимость от типа системы (не надо утруждать себя изучением нового командного языка) и, самое главное, возможность создавать программы с переносимым графическим интерфейсом (GUI). Можно, например, написать утилиту просмотра всех каталогов и подкаталогов с уничтожением временных файлов, приделать к ней симпатичную оболочку с кнопочками, меню, картинками, диалогом ввода расширения уничтожаемых файлов, и эта утилита будет работать практически в любой операционной системе!
Язык Tel — расширяемый. В нем можно самостоятельно определять новые команды языка. Приведем классический пример определения команды Tel:
button.b-text Hello!-font {Times 16}~command {puts hello}
Команда button предназначена для создания кнопки (. b) с надписью Hello! (можно указать картинку), которая пишется шрифтом Times размером 16 пунктов. При нажатии на кнопку в стандартное устройство вывода посылается строка hello (puts hello). Набором таких команд можно очень компактно и наглядно описать графический интерфейс пользователя с полным функциональным наполнением. Эти команды можно вызывать из других языков или на их основе писать программное обеспечение полностью на Tel. В последнем случае приложение рассматривается как Pure Tell 00%.
Система Tcl/Tk разрабатывалась одновременно как язык и библиотека. Эта идея была позже реализована в Java, языке фирмы Sun, в которой Аустираут трудился с середины 90-х годов. В 1998 году он основал собственную компанию Scriptics, переименованную впоследствии в Ajuba Solutions. Наконец, логическим завершением очередной фазы развития языка стало создание группы, объединившей 14 ведущих разработчиков Tcl/Tk (www.tcltk.com), & Ajuba Solutions была приобретена в 2000 году компанией ActiveState (tcl.activestate.com).
Библиотека Tk содержит стандартизованный набор команд поддержки графической оболочки в стиле Motif. Управляющие элементы, хранящиеся в библиотеке Tk, называются виджетами (widgets). Большое количество нетиповых виджетов можно найти в Сети. На основе библиотеки Tk создаются переносимые приложения, например, на С, с графическим интерфейсом.
На языке Tel написано много мобильных приложений с графическим интерфейсом, которые используются в самых разных областях: для управления операционной системой, администрирования сетей, обслуживания Web-серверов и других целей. В библиотеке Tk имеются команды для работы с сокетами, с помощью которых можно создавать приложения для Сети. Для браузеров разработаны подключаемые модули, позволяющие вставлять Tci-скрипты («тиклеты») в страницы HTML (см. www.neuron.com). Известно использование Tcl/Tk в масштабных российских проектах, в частности, в кодогенераторах фирмы DataX/ Florin для поддержки платформно-независимого пользовательского интерфейса.
Язык Tcl/Tk распространяется в исходных текстах бесплатно (см. например purl.org/tcl/home). Он может легко интегрироваться с C++, Ада, Пролог, Модула-3, Perl и многими другими языками. Язык Tel реализован для MS-DOS, Windows (на сайте www.scriptics.com), Macintosh, AIX 3.x, VMS, для практически всех Unix-платформ (SunOS, SCO Unix, HP-UX, ESDI, Linux, QNX), а также для суперкомпьютеров Cray и NEC. На Pure Tel 100% написана оболочка Visual Tel, которая позволяет разрабатывать кросс-платформное программное обеспечение для Unix /Linux, Windows и Macintosh. Имеется расширение языка incrTcl/incrTk, ориентированное на создание больших приложений.
С начала 90-х годов проект Tel начала поддерживать фирма Sun. Была создана рабочая группа SunScript (название языка осталось прежним). В середине 90-х годов в этой группе поработал и Джон Аустираут. Группа SunScript создает коммерческие версии библиотеки Tk, в частности, для Windows и Macintosh. Некоторое время назад эта группа приступила к интеграции Tel и Java. Разработана версия Tel, написанная на Java — Jacl (JAva Command Language). Расширение языка Tel Blend позволяет работать с виртуальной машиной Java и интегрировать сценарии Tel с Java-кодом.
В конце августа 1997 года вышла новая, восьмая версия Tcl/Tk (сегодняшняя модификация — 8.3.2). Интерпретация заменена компиляцией в байт-код «налету» (по аналогии с Java). Полностью переделана обработка строк. Работа с двоичными объектами и большими текстовыми массивами по сравнению с версией 7.x ускорилась в 2—20 раз. Добавлены новые команды быстрой сортировки, ввода/вывода двоичных данных с поддержкой различных типов периферийных устройств, поддерживается протокол HTTP, реализованы новые средства обеспечения безопасности. Увеличена точность при работе с числами с плавающей запятой до 12 цифр вместо 6. Подробно документирован интерфейс взаимодействия с С. Полностью переписана библиотека Tk. Работа
с объектами управления стала более удобной, усовершенствована работа с меню и шрифтами, добавлены новые команды работы с графическими файлами и др. Наконец, приложения на Tcl/Tk могут сопровождаться логотипом Tel Powered (по лицензии Sun). Появилась, правда, небольшая несовместимость с программами, написанными на старых версиях Tel. Теперь даты, выраженные двумя цифрами года, трактуются как даты следующего столетия. Например, 17 г. означает не 1917 год, а 2017 год. В версии Tel 8.1 была реализована поддержка Unicode.
Учитывая, что язык Tcl/Tk одно время активно поддерживался компанией Sun, можно предсказать ему хорошее будущее. А история создания Tcl/Tk является классическим примером на тему «как стать знаменитым» . Хотите им стать? Разработайте свой скрипт-язык для использования в какой-нибудь быстро развивающейся области информационных технологий, положите исходные тексты интерпретатора на свою страничку, напишите в конференцию по программированию, и ждите, когда вас пригласят в Sun или Microsoft.
VRML: трехмерный язык Интернета