Языки программирования для АОТ

 

Среда (в теории систем) — совокупность объектов, изменение свойств которых влияет на систему, а также тех объектов, чьи свойства меняются под воздействием поведения системы.

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

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

Цифровая среда - среда логических объектов, используемая для описания (моделирования) других сред (в частности, электронной и социальной) на основе математических законов (ГОСТ Р 52292-2004; Информационная технология. Электронный обмен информацией. Термины и определения). 

 

 

 

Perl

 

Картинка как текст... условность текста... относительность текста



Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения, созданный Ларри Уоллом, лингвистом по образованию. Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language — «практический язык для извлечения данных и составления отчётов»[1]. Первоначально аббревиатура состояла из пяти символов и в таком виде в точности совпадала с английским словом pearl («жемчужина»). Но затем стало известно, что такой язык существует (см. PEARL (англ.)), и букву «a» убрали. Талисманом языка Perl является верблюд — не слишком красивое, но очень выносливое животное, способное выполнять тяжёлую работу.

Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе работа с регулярными выражениями, встроенная в синтаксис. Перл унаследовал много свойств от языков Си, AWK, скриптовых языков командных оболочек UNIX.

Perl также знаменит огромной коллекцией дополнительных модулей CPAN, находящейся по адресу http://www.cpan.org.


Ларри Уолл начал разработку Perl в 1987 году

Изначально, единственной документацией для Perl была единственная (огромной длины) man-страница. В 1991 году была выпущена книга «Programming Perl» (известная многим программистам как «Верблюжья книга» (Camel Book) из-за изображения на обложке), которая, де-факто, стала стандартом языка.
С 2000 года идёт разработка новой (6-й) версии языка. В отличие от предыдущих версий, разработчики планируют создать чётко определённый стандарт языка. В настоящее время существуют экспериментальные компиляторы Perl 6, но продолжается дальнейшая дискуссия о новых правилах. На русском языке информация о новой версии языка доступна на сайте perl6.ru


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

Язык можно охарактеризовать скорее как практичный (лёгкость в использовании, эффективность, полнота), чем красивый (элегантность, минималистичность)[27]. Главными достоинствами языка являются поддержка различных парадигм (процедурный, объектно-ориентированный и функциональный стили программирования), контроль за памятью (без сборщика мусора, основанного на циклах), встроенная поддержка обработки текста, а также большая коллекция модулей сторонних разработчиков.

Согласно Ларри Уоллу, у Perl есть два девиза. Первый — «Есть больше одного способа это сделать» («There’s more than one way to do it»), известный также под аббревиатурой TMTOWTDI. Второй слоган — «Простые вещи должны оставаться простыми, а сложные — стать выполнимыми» («Easy things should be easy and hard things should be possible»).



Perl — далеко не единственный язык, дающий богатые возможности в обработке текста. Языки программирования РЕФАЛ, Icon и Снобол предоставляют возможность более полно использовать метод программирования «сопоставления с образцом», частным случаем которого и являются регулярные выражения.

Существует также полноценный шелл, использующий в качестве основы язык Perl. Называется он psh и даёт возможность смешивать команды обычного шелла и самого Perl’а[32].


На Perl можно даже писать стихотворения. Одно из таких стихотворений под названием «Black Perl» («Чёрная жемчужина» или «Чёрный перл») было упомянуто Ларри Уоллом в первоапрельском письме в Usenet. Оно было написано изначально для Perl 3, и по словам самого Ларри, он испытал моральное удовлетворение, когда стихотворение не прошло синтаксический анализатор в Perl 5.


BEFOREHEAD: close door, each window & exit; wait until time.
open spellbook, study, read (scan, select, tell us);
write it, print the hex whole each watches,
reverse its length, write again;
kill spiders, pop them, chop, split, kill them.
unlink arms, shift, wait & listen (listening, wait),
sort the flock (then, warn the "goats" & kill the "sheep");
kill them, dump qualms, shift moralities,
values aside, each one;
die sheep! die to reverse the system
you accept (reject, respect);
next step,
kill next sacrifice, each sacrifice,
wait, redo ritual until "all the spirits are pleased";
do it ("as they say").
do it(*everyone***must***participate***in***forbidden**s*e*x*).
return last victim; package body;
exit crypt (time, times & "half a time") & close it,
select (quickly) & warn your next victim;
AFTERWORDS: tell nobody,
wait, wait until time;
wait until next year, next decade;
sleep, sleep, die yourself,
die at last



Ларри Уолл (англ. Larry Wall) — американский программист. Знаменит как создатель языка программирования Perl. Лингвист по образованию.

Ларри Уолл
Larry Wall
Larry Wall YAPC 2007.jpg
Род деятельности:
программист, лингвист, писатель
Дата рождения:
27 сентября 1954 (59 лет)
Место рождения:
Лос-Анджелес, Калифорния, США
Уолл — автор клиента Usenet и широкоиспользуемой программы patch. Он дважды побеждал в международном конкурсе запутанного кода на языке программирования Си (IOCCC) и был лауреатом первой награды Free Software Foundation за продвижение свободного программного обеспечения (Free Software Foundation Award for the Advancement of Free Software) в 1998 году.


Сейчас Ларри Уолл продолжает развивать язык Perl под патронатом O’Reilly и живёт вместе со своей женой-писательницей и четырьмя детьми в городке Маунтин-Вью в Калифорнии.

Целью автора языка Perl никогда не было получение денег. Напротив, он внёс существенный вклад в культуру бесплатного распространения программ с их исходными кодами как средств работы программистов. Новый язык программирования Уолл разрабатывал для того, чтобы решить проблемы программистов, с которыми он сам сталкивался в течение рабочего дня. Когда первая версия языка вышла в свет, Ларри Уолл обеспечил открытый доступ и к исходному коду самой программы. Любой желающий может бесплатно скачать и пользоваться Perl независимо от того, нужен ли он ему для усовершенствования собственной странички или для создания мультимилионного Интернет-проекта. Благодаря языку Perl стартовал Yahoo — проект, авторам которого прекрасно удаётся заработок на сайте. С его же помощью создан Amazon и миллионы других сайтов.

Образование[править | править исходный текст]

Ларри получил степень бакалавра по специальности лингвистика в Тихоокеанском университете Сиэтла в 1976 году.

В дальнейшем его научная деятельность была посвящена лингвистическим исследованиям и переводу Библии.

 

 

 

PEФАЛ

 

Картинка как текст... условность текста... относительность текста

 

РЕФАЛ (РЕкурсивныхФункцийАЛгоритмический) — один из старейшихфункциональных языков программирования, ориентированный на так называемые «символьные преобразования»: обработку символьных строк (например, алгебраические выкладки); перевод с одного языка (искусственного или естественного) на другой; решение проблем, связанных с искусственным интеллектом. Соединяет в себе математическую простоту с практической ориентацией на написание больших и сложных программ.
Отличительной чертой языка является использование сопоставления с образцом и переписывания термов как основного способа определения функций.
 


Первая версия РЕФАЛа была создана в 1966 году Валентином Турчиным в качестве метаязыка для описания семантики других языков. Впоследствии, в результате появления достаточно эффективных реализаций на ЭВМ, он стал находить практическое использование в качестве языка программирования.
Валентин Фёдорович Турчин (1931, г. Подольск, Московская область — 7 апреля 2010, Нью-Йорк, США) — советский и американский физик и кибернетик, создатель языка Рефал и новых направлений в программировании и информатике, участник правозащитного движения в СССР, автор «самиздата», председатель Советский секции «Международной амнистии».
Идея создания этого сайта принадлежит Валентину Федоровичу Турчину, создателю языка программирования РЕФАЛ, в который были заложены концепции, не только намного опередившие тогдашнее время (1966-1968), но и опережающие время настоящее.

В.Ф.Турчин обладал редкими человеческими качествами - целостностью и внутренней свободой. Именно этим объясняются все аспекты его многосторонней деятельности: как физика, кибернетика, философа и как Учителя (рука не поднимается написать казенное "создателя и руководителя научной школы").

Именно этим объясняется притягательность его личности и желание говорить о феномене Турчина. И поскольку о нем написано много и интересно, и сам он также написал много и интересно, авторы сайта рекомендуют просмотреть все предлагаемые материалы, чтобы составить представление об этом уникальном человеке.

7 апреля 2010 года Валентини Федорович Турчин, к глубокому прискорбию всех, кто знал его, ушел из жизни после продолжительной борьбы с тяжелой болезнью
В настоящее время основными диалектами языка являются РЕФАЛ-2 (1970-е), РЕФАЛ-5 (1985) и РЕФАЛ+ (1990), отличающиеся друг от друга деталями синтаксиса и набором «дополнительных средств», расширяющих первоначальный вариант.
Сергей Михайлович Абрамов (род. 25 марта1957, Москва) — профессор, доктор физико-математических наук,член-корреспондент РАН. Директор Института программных систем РАН, ректор Университета города Переславля. Научный руководитель от России программ СКИФ и СКИФ-ГРИД по разработкесуперкомпьютеров (проектсоюзного государства России и Белоруссии). Специалист в области системного программирования и информационных технологий (суперкомпьютерные системы, телекоммуникационные технологии, теория конструктивных метасистем и метавычислений).
 

 

 

Программа на Рефале может состоять из одного или нескольких модулей (файлов), каждый из которых, в свою очередь, состоит из функций.

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

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

обыкновенные символы (буквы, цифры и т. д.), которые в зависимости от диалекта требуется или не требуется заключать в апострофы или кавычки
символы-метки (идентификаторы, конкретная запись которых варьируется в зависимости от диалекта языка; так, в Рефале-5 идентификатором может служить произвольная последовательность латинских букв и цифр, начинающаяся с буквы)
макроцифры — цифровая запись неотрицательных целых чисел, не превышающих предельное значение
числа с плавающей точкой
Рефал-переменные одного из нескольких предопределённых типов
произвольное выражение, заключённое в круглые скобки (в документации по Рефалу такой терм называется выражением в структурных скобках)
произвольное выражение, заключённое в «угловые» скобки и означающее вызов функции (такой терм называется активным выражением)
В зависимости от ситуации на выражение могут быть наложены ограничения; так, в образцах запрещено использовать выражения, содержащие угловые скобки, а в поле зрения Рефал-машины не могут присутствовать переменные.

Рефал-переменные используются в образцах и в зависимости от своего типа могут сопоставляться одному символу (то есть любому терму, кроме выражения в структурных скобках), одному терму (произвольному), либо произвольному выражению (то есть последовательности термов произвольной длины). Соответствующие типы переменных называются S-переменными, T-переменными и E-переменными. В диалекте Рефал-2 поддерживались ещё и V-переменные, сопоставляемые произвольному непустому выражению; в современных диалектах такие переменные не поддерживаются.

Семантика языка Рефал описывается в терминах виртуальной машины, называемой «рефал-машина» или «рефал-автомат». Машина имеет поле зрения, в котором может находиться произвольное рефал-выражение, не содержащее рефал-переменных.

Выполнение программы состоит из шагов рефал-автомата, на каждом из которых выполняется применение функции к выражению. Для этого рефал-машина отыскивает в своём поле зрения самое левое из самых внутренних активных выражений; иначе говоря, отыскиваются парные угловые скобки, не содержащие других угловых скобок, а если таких пар имеется несколько, выбирается та из них, которая текстуально в поле зрения находится левее остальных. Первый терм выражения, заключённого в угловые скобки, должен представлять собой символ-метку, служащую именем функции; оставшаяся часть выражения используется как аргумент функции.

Как было сказано выше, среди предложений, составляющих функцию, находится первое такое, образец которого можно сопоставить с аргументом функции; в ходе сопоставления приписываются значения переменным, содержащимся в образце. Затем шаблон, взятый из того же предложения, берётся за основу для формирования результата вычисления функции; попросту говоря, результатом объявляется выражение, полученное из шаблона заменой переменных на их значения. Необходимо отметить, что шаблон может содержать только переменные, имеющиеся в образце; таким образом, все переменные, входящие в шаблон, окажутся при формировании результата заменены на соответствующие выражения, и результат уже содержать переменные не будет. С другой стороны, шаблон вполне может содержать выражения в угловых скобках.

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

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

 

 

 

СНОБОЛ

 

 

Снобо́л — язык программирования высокого уровня, разработанный в 1962—1967 гг. и предназначенный преимущественно для обработки текстовых данных.

Основной целью языка Снобол являлось показать принцип (возможность его полноценного существования), что всё есть строка. Внешне язык выглядит в так называемом «старом стиле»: современные идеи процедур в нём сложно узнать, однако мощь его ничуть не уступает LISP по работе в среде «искусственного интеллекта».

Сопоставление с образцом на основе НФБ-грамматик. Полностью динамический язык, включая объявления, типы, распределение памяти, даже точки входа и выхода из процедуры. Реализация использует виртуальные макрокоманды обработки строк — простой перезаписью макрокоманд для любого существующего компьютера.

Язык, который является языком написания компиляторов, в котором основной принцип, что всё есть строка и имеющий такой «некрасивый» синтаксис не мог естественным путём не «переродиться» в совершенно другой, внешне даже не похожий: Icon. Первоначально он был одной лишь надстройкой над Снобол4, но вскоре стал самостоятельным языком программирования.

Было разработано несколько версий языка Снобол — SNOBOL, SNOBOL2, SNOBOL3 и SNOBOL4. Последний пользовался успехом в 70-е гг.

 

 

 

 

ICON

 

Icon — язык программирования, унаследовавший идеологию более раннего языка того же автора Снобол. Название языка не имеет ничего общего с «иконками», а является сокращением от слова англ. iconoclastic (иконоборческий), используемом в смысле борьбы с конформизмом в разработке языков программирования.

Это сверхвысокоуровневый язык программирования, который имеет много общего с языками логического программирования.

Язык является динамически типизированным, имеет встроенные мощные типы данных. Процедуры в Icon'е относятся к величинам первого класса (англ. first class values), что означает возможность присваивания переменным значений самих процедур, а не результатов их выполнения. Существует механизм со-выражений (англ. co-expression), позволяющий создавать сопрограммы.

Появился в 1974
Ralph E. Griswold
Основные реализации: Icon, Jcon, Unicon
Испытал влияние: Снобол, Algol
Повлиял на: Python и и Perl.

 

 

 


После смерти автора языка, разработка классического аризонского айкона долгое время была заморожена, предпоследняя версия Icon v.9.4.3 была выпущена 14 ноября 2005, однако в настоящее время его поддержка возобновлена его учеником Грегом Таунсендом. 12 апреля2010 выпущена новая версия транслятора.
Активно развивающейся ветвью Icon является язык Unicon (англ.), транслятор которого основан на его коде, и также распространяемый под лицензией GNU GPL. Это объектно-ориентированный диалект языка, с улучшенной интеграцией с окружающей средой ОС, включая, к примеру, поддержку взаимодействия с БД. Подобно icon v.9.3, Unicon — это транслятор ориентированный на генерацию исполняемых файлов.
Также активно развивается диалект ObjectIcon, базирующийся на ранних версиях Unicon и являющийся форком последнего. ObjectIcon, как следует из названия, является расширенной объектно-ориентированной версией Icon, с расширенным синтаксисом для ООП (в частности, в отличие Unicon, в ObjectIcon есть модификаторы полей доступа к методам). В ObjectIcon сильно изменен состав библиотек (большая часть IPL была сильно переработана — некоторые модули были удалены, были полностью изменены графические библиотеки.), добавлена поддержка Unicode, поддержка пространств имен, добавлены множественное наследование и автоматическая инициализация констант и переменных — и теперь это современный и мощный ООП-язык. Разрабатывается Робертом Парлеттом и распространяется по MIT лицензии. Доступен к загрузке на Google Code, работает пока в среде Linux/Unix.