Языки
программирования для АОТ |
Среда (в теории систем) — совокупность объектов, изменение свойств
которых влияет на
систему, а также тех объектов, чьи свойства меняются под воздействием
поведения системы.
Информационная среда -
совокупность технических и программных средств хранения, обработки и
передачи информации, а также социально-экономических и культурных условий
реализации процессов информатизации.
Электронная среда -
среда технических устройств (аппаратных средств), функционирующих на основе
физических законов и используемых в информационной технологии при обработке,
хранении и передаче данных.
Цифровая среда -
среда логических объектов, используемая для описания (моделирования) других
сред (в частности, электронной и социальной) на основе математических
законов (ГОСТ Р 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.
|
|