Amiga E

Поделись знанием:
(перенаправлено с «YAEC»)
Перейти к: навигация, поиск
Amiga E
Класс языка:

алгоритмическое, процедурное, объектно-ориентированное программирование

Появился в:

1993

Автор:

Wouter van Oortmerssen

Расширение файлов:

.e

Выпуск:

3.3a

Система типов:

слабая, динамическая

Сайт:

[wouter.fov120.com/e/ fov120.com/e/]

Amiga E, часто называемый просто E — объектно-ориентированный язык программирования созданный Уотером ван Оортмерссеном (дат. Wouter van Oortmerssen) для ПК Amiga. Этот известный датский программист рассматривал создание собственного языка программирования как способ облегчить решение стоящих перед ним задач, что наложило определённый отпечаток на идеологию получившегося продукта. В дальнейшей своей карьере, Уотер ван Оортмерссен применил разработанную концепцию Amiga E при создании языков программирования Sheep для среды AmigaDE [1] и CryScript (также известный как DOG) использованный в разработке популярной игры Far Cry. [2]

Amiga E вобрал в себя черты множества самых разнообразных языков программирования, но в фундаментальных вопросах следует идеологии языка программирования Си. Отличительные особенности языка: быстрая компиляция (что позволяет ему конкурировать со скриптовыми языками), очень удобочитаемые исходные коды, гибкая система типов, развитая система модулей, поддержка обработки исключений (реализация в форме нехарактерной для Си++) и объектно-ориентированное программирование.

Типичная программа "hello world" на Amiga E выглядит так:

 PROC main()
    WriteF('Hello, World!')
 ENDPROC

Amiga E использовался при создании ядра популярного на Amiga растрового процессора изображений Photogenics и расширяемого просмотрщика текстов EvenMore.





История

1993: Первый публичный релиз коммерческого компилятора Amiga E.

1997: Последняя версия коммерческого компилятора Amiga E от автора (3.3a).

1999: Выпущен сторонний компилятор с языка Amiga E не имеющий ограничений ([wouter.fov120.com/files/lang/e/ec33a.readme Ссылка])

1999: Исходные коды компилятора Amiga E написанного на ассемблере m68k выпущены под лицензией GPL. ([wouter.fov120.com/files/lang/e/ec33a_src.readme Ссылка])

1999: Выпущена первая версия компилятора CreativE основанного на исходном коде компилятора Amiga E.

1999: Выпущена первая версия компилятора PowerD транслирующего расширенный код Amiga E в Си, с последующей компиляцией в GCC. (0.01)

2000: Выпущена первая версия компилятора YAEC (сокращение от англ. Yet Another E Compiler - ещё один компилятор E). (1.0)

2001: Выпущена финальная версия компилятора CreativE (2.12.3) ([aminet.net/package/dev/e/2b_CreativE Ссылка])

2002: Выпущена финальная версия компилятора YAEC (2.5d).

2002: Выпущена первая версия компилятора ECX написанного на самом Amiga E. (1.0)

2003: Выпущена финальная версия компилятора PowerD. (0.20)

2008: Выпущен первый публичный релиз компилятора PortablE транслирующего код Amiga E в Си. (r1)

2009: Выпущен первый публичный релиз компилятора PortablE для ОС Windows. (r4)

Реализации компиляторов

Amiga E (автор Wouter van Oortmerssen)

Первая реализация компилятора написанная на ассемблере m68k. Позволяет создавать приложения на языке E. Генерирует непосредственно машинный код Motorola 680x0;

  • Платформы: AmigaOS и совместимые;
  • Назначение: AmigaOS для процессоров m68k.
  • Состояние: Стабильный, зрелый, не поддерживается, исходный код доступен, свободно распространяется.

CreativE (автор Tomasz Wiszkowski)

Компилятор основан на исходниках Amiga E распространяемых под лицензией GPL и содержит множество расширений изначального синтаксиса.

  • Платформы: AmigaOS и совместимые;
  • Назначение: Компилятор подобный Amiga E и ограниченная поддержка разработчиков для устаревших процессоров MC68000;
  • Состояние: Стабильный, зрелый, не поддерживается, исходный код доступен, свободно распространяется.

PowerD (автор Martin Kuchinka)

Основан на языке Amiga E, но не совместим с ним из-за больших различий в синтаксисе;

  • Платформы: AmigaOS и совместимые;
  • Назначение: AmigaOS 3.0, процессоры 68020 c FPU или PPC;
  • Состояние: Стабильный, зрелый, находится в разработке, исходный код закрыт, свободно распространяется.

YAEC (автор Leif Salomonsson)

Написан на самом языке Amiga E. Использует внешние ассемблер и компоновщик;

  • Платформы: AmigaOS и совместимые;
  • Назначение: AmigaOS 3.0, процессоры 68020 c FPU;
  • Состояние: Устаревший, не законченный, не поддерживается, исходный код закрыт, свободно распространяется.

ECX (автор Leif Salomonsson)

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

  • Платформы: AmigaOS, AmigaOS 4 и MorphOS;
  • Назначение: AmigaOS 3.0 (процессоры 68020), AmigaOS 4, MorphOS;
  • Состояние: Стабильный, зрелый, находится в разработке, исходный код закрыт (ранее был открыт), shareware (ранее был свободен).[3]

PortablE (автор Christopher Handley)

Мета-компилятор написанный на самом языке Amiga E, кроме того способен скомпилировать сам себя. Имеет значительное число расширений. Используется для кросс-платформенной разработки.

  • Платформы: Windows, AmigaOS (68k), AmigaOS 4 (PPC), AROS и MorphOS;
  • Назначение: Трансляция кода C++ и Amiga E;
  • Состояние: Стабильный, зрелый, находится в разработке, исходный код закрыт, свободно распространяется.

Напишите отзыв о статье "Amiga E"

Примечания

  1. Eugenia Loli-Queru. [www.osnews.com/story/169 "Интервью с Уотером ван Оортмерссеном про SHEEP" (англ.)]. osnews.com. OSNews (12 Октября 2001). [www.webcitation.org/69W9xYZr5 Архивировано из первоисточника 29 июля 2012].
  2. Guildhall. [guildhall.smu.edu/Faculty.15.0.html?&cHash=ca12487200&tx_guildhallbio_pi1%5BshowUid%5D=15 Faculty (англ.)]. smu.edu. Southern Methodist University.
  3. Leif Salomonsson. [blubbedev.net/ecx/ E Compiler X]. [www.webcitation.org/69WA1bnTV Архивировано из первоисточника 29 июля 2012].

Ссылки

  • [wouter.fov120.com/e/ Домашняя страница автора Amiga E] (англ.)
  • [amitrans.narod.ru/content/Press/AmigaE.html Описание среды компилятора AmigaE 3.3a] (рус.)
  • [cshandley.co.uk/amigae/ Авторское руководство программиста в Amiga E (для v3.3a)] (англ.)
  • [cshandley.co.uk/JasonHulance/ Руководство начинающего программиста в Amiga E] (англ.)
  • [www.blubbedev.net/ecx/ Домашняя страница автора компилятора ECX (свободная реализация для PowerPC)] (англ.)
  • [cshandley.co.uk/portable/ Домашняя страница автора компилятора PortablE (свободные реализации для Windows и Amiga)] (англ.)
  • [www.freelists.org/list/positron Список рассылки Amiga E] (англ.)

Отрывок, характеризующий Amiga E

– Не съездить ли, ваше превосходительство? – сказал Несвицкий.
– Да, съездите, пожалуйста, – сказал генерал, повторяя то, что уже раз подробно было приказано, – и скажите гусарам, чтобы они последние перешли и зажгли мост, как я приказывал, да чтобы горючие материалы на мосту еще осмотреть.
– Очень хорошо, – отвечал Несвицкий.
Он кликнул казака с лошадью, велел убрать сумочку и фляжку и легко перекинул свое тяжелое тело на седло.
– Право, заеду к монашенкам, – сказал он офицерам, с улыбкою глядевшим на него, и поехал по вьющейся тропинке под гору.
– Нут ка, куда донесет, капитан, хватите ка! – сказал генерал, обращаясь к артиллеристу. – Позабавьтесь от скуки.
– Прислуга к орудиям! – скомандовал офицер.
И через минуту весело выбежали от костров артиллеристы и зарядили.
– Первое! – послышалась команда.
Бойко отскочил 1 й номер. Металлически, оглушая, зазвенело орудие, и через головы всех наших под горой, свистя, пролетела граната и, далеко не долетев до неприятеля, дымком показала место своего падения и лопнула.
Лица солдат и офицеров повеселели при этом звуке; все поднялись и занялись наблюдениями над видными, как на ладони, движениями внизу наших войск и впереди – движениями приближавшегося неприятеля. Солнце в ту же минуту совсем вышло из за туч, и этот красивый звук одинокого выстрела и блеск яркого солнца слились в одно бодрое и веселое впечатление.


Над мостом уже пролетели два неприятельские ядра, и на мосту была давка. В средине моста, слезши с лошади, прижатый своим толстым телом к перилам, стоял князь Несвицкий.
Он, смеючись, оглядывался назад на своего казака, который с двумя лошадьми в поводу стоял несколько шагов позади его.
Только что князь Несвицкий хотел двинуться вперед, как опять солдаты и повозки напирали на него и опять прижимали его к перилам, и ему ничего не оставалось, как улыбаться.
– Экой ты, братец, мой! – говорил казак фурштатскому солдату с повозкой, напиравшему на толпившуюся v самых колес и лошадей пехоту, – экой ты! Нет, чтобы подождать: видишь, генералу проехать.
Но фурштат, не обращая внимания на наименование генерала, кричал на солдат, запружавших ему дорогу: – Эй! землячки! держись влево, постой! – Но землячки, теснясь плечо с плечом, цепляясь штыками и не прерываясь, двигались по мосту одною сплошною массой. Поглядев за перила вниз, князь Несвицкий видел быстрые, шумные, невысокие волны Энса, которые, сливаясь, рябея и загибаясь около свай моста, перегоняли одна другую. Поглядев на мост, он видел столь же однообразные живые волны солдат, кутасы, кивера с чехлами, ранцы, штыки, длинные ружья и из под киверов лица с широкими скулами, ввалившимися щеками и беззаботно усталыми выражениями и движущиеся ноги по натасканной на доски моста липкой грязи. Иногда между однообразными волнами солдат, как взбрызг белой пены в волнах Энса, протискивался между солдатами офицер в плаще, с своею отличною от солдат физиономией; иногда, как щепка, вьющаяся по реке, уносился по мосту волнами пехоты пеший гусар, денщик или житель; иногда, как бревно, плывущее по реке, окруженная со всех сторон, проплывала по мосту ротная или офицерская, наложенная доверху и прикрытая кожами, повозка.
– Вишь, их, как плотину, прорвало, – безнадежно останавливаясь, говорил казак. – Много ль вас еще там?
– Мелион без одного! – подмигивая говорил близко проходивший в прорванной шинели веселый солдат и скрывался; за ним проходил другой, старый солдат.
– Как он (он – неприятель) таперича по мосту примется зажаривать, – говорил мрачно старый солдат, обращаясь к товарищу, – забудешь чесаться.
И солдат проходил. За ним другой солдат ехал на повозке.
– Куда, чорт, подвертки запихал? – говорил денщик, бегом следуя за повозкой и шаря в задке.
И этот проходил с повозкой. За этим шли веселые и, видимо, выпившие солдаты.
– Как он его, милый человек, полыхнет прикладом то в самые зубы… – радостно говорил один солдат в высоко подоткнутой шинели, широко размахивая рукой.
– То то оно, сладкая ветчина то. – отвечал другой с хохотом.
И они прошли, так что Несвицкий не узнал, кого ударили в зубы и к чему относилась ветчина.
– Эк торопятся, что он холодную пустил, так и думаешь, всех перебьют. – говорил унтер офицер сердито и укоризненно.
– Как оно пролетит мимо меня, дяденька, ядро то, – говорил, едва удерживаясь от смеха, с огромным ртом молодой солдат, – я так и обмер. Право, ей Богу, так испужался, беда! – говорил этот солдат, как будто хвастаясь тем, что он испугался. И этот проходил. За ним следовала повозка, непохожая на все проезжавшие до сих пор. Это был немецкий форшпан на паре, нагруженный, казалось, целым домом; за форшпаном, который вез немец, привязана была красивая, пестрая, с огромным вымем, корова. На перинах сидела женщина с грудным ребенком, старуха и молодая, багроворумяная, здоровая девушка немка. Видно, по особому разрешению были пропущены эти выселявшиеся жители. Глаза всех солдат обратились на женщин, и, пока проезжала повозка, двигаясь шаг за шагом, и, все замечания солдат относились только к двум женщинам. На всех лицах была почти одна и та же улыбка непристойных мыслей об этой женщине.
– Ишь, колбаса то, тоже убирается!
– Продай матушку, – ударяя на последнем слоге, говорил другой солдат, обращаясь к немцу, который, опустив глаза, сердито и испуганно шел широким шагом.
– Эк убралась как! То то черти!
– Вот бы тебе к ним стоять, Федотов.
– Видали, брат!
– Куда вы? – спрашивал пехотный офицер, евший яблоко, тоже полуулыбаясь и глядя на красивую девушку.
Немец, закрыв глаза, показывал, что не понимает.
– Хочешь, возьми себе, – говорил офицер, подавая девушке яблоко. Девушка улыбнулась и взяла. Несвицкий, как и все, бывшие на мосту, не спускал глаз с женщин, пока они не проехали. Когда они проехали, опять шли такие же солдаты, с такими же разговорами, и, наконец, все остановились. Как это часто бывает, на выезде моста замялись лошади в ротной повозке, и вся толпа должна была ждать.
– И что становятся? Порядку то нет! – говорили солдаты. – Куда прешь? Чорт! Нет того, чтобы подождать. Хуже того будет, как он мост подожжет. Вишь, и офицера то приперли, – говорили с разных сторон остановившиеся толпы, оглядывая друг друга, и всё жались вперед к выходу.