PDA

Просмотр полной версии : Разработка для Z80 на языке Jovial



Oleg N. Cher
24.01.2017, 01:09
http://dic.academic.ru/dic.nsf/ruwiki/26046

История создания

Американский программист Джолиус Шварц (Jules Schwartz) дополнил OVIAL рядом полезных усовершенствований, прибавил к аббревиатуре первую букву своего имени, и в январе 1959 года на свет появился Jovial. Одной из главных целей создания Jovial Шварц поставил возможность создания кросс-платформных программ, способных работать в реальном режиме времени. В внутреннюю структуру Jovial-машины были заложены гибкие возможности оптимизации кода, не зависящие от платформы, и быстрый перенос программ при модификации архитектуры целевого компьютера. Жёсткая структура организации файлов с исходными текстами, не допускающая машинно-зависимых синтаксических конструкций, позволяла легко переносить программы на различные платформы. Именно эти возможности и оказались ключевыми при выборе этого языка ВВС США.

Применение

В силу жёстких требований, предъявляемых к языку, реализация Jovial, созданная в ВВС США, представляет собой не просто компилятор, а целый комплекс стандартизованных средств разработки. В этом на него похожа Java, в типичную поставку которой помимо компилятора обязательно входит виртуальная Java-машина, набор библиотек, средства отладки, вьюверы, имитирующие работу в Сети и т. д. Так и Jovial распространяется в комплекте разработчика под названием ITS. Этот комплект представляет собой прекрасный пример тщательно продуманного подхода к выбору и совершенствованию средства разработки ПО, которое планируется использовать в ответственных областях десятки лет. В типовой комплект ITS входят кросс-платформные компилятор и макроассемблер, поддерживающий систему команд 1750А, сборщик, символьный интерактивный отладчик, поддерживающий режим реального времени, программный симулятор процессора с набором команд 1750А, библиотека стандартных модулей и загрузчик кода в оборудование 1750 (при наличии соответствующих аппаратных плат). Первая очередь этого комплекса была закончена в 1984 году. Первоначально она функционировала только на мейнфреймах и middleframes, а сегодня работает также под управлением SCO UNIX 3.2 или MS-DOS. ITS обеспечивает генерацию кода (помимо МП 1750А) для VAX, IBM PC, Z80, M680X0, RISC-компьютеров и ряда других. Наиболее популярная реализация ITS для компьютеров серии VAX используется сегодня в более чем 50 подразделениях МО США. Её догоняет реализация для персоналок, работающая под управлением UNIX.

Распространение

ITS распространяется правительством США бесплатно. Для получения (или попытки получения) ITS рекомендовано обращаться к атташе по вопросам авиации американского посольства.

Сегодня имеются и коммерческие версии Jovial, распространяемые, впрочем, за пределами США только с разрешения американских компетентных органов. Стоят эти версии порядка 75 000 долл. Для их приобретения можно попробовать написать письмо на адрес mailto:usafjovial@aol.com или mailto:millerjm@sm4.ascsm.wpafb.af.mil. Одна из этих версий представляют собой компилятор Jovial для платформ VAX/VMS, SPARC/SunOS, HP-UX, позволяющий получать код для Z8000 и 1750А. В комплект дополнительно включаются ассемблер для каждой платформы, сборщик, симулятор целевых наборов команд и символьный отладчик, использующий интерфейс X Window System. Настройки оптимизации позволяют получать код, который в сравнении с кодом, написанным на ассемблере вручную, даёт выигрыш в размере программы и скорости её выполнения на 15 %.

МО США уделяет языку Jovial большое внимание. За последние 15 лет использования Jovial американская армия инвестировала в его совершенствование более 16 миллионов долларов. Суммы, стимулирующие написание программ на Jovial и перенос других программных систем на этот язык, увеличиваются с каждым годом. Для организации полной совместимости всего ПО, используемого в бортовых системах, американские военные приняли стандарт MIL-STD-1589 на версию этого языка J-73. Теперь всё программное обеспечение, разрабатываемое в подразделениях МО США на языке Jovial, должно соответствовать данному стандарту. В ближайшем будущем ВВС США собирается провести полный реинжиниринг своей компьютерной инфраструктуры, при этом всё ПО, работающее в бортовых микропроцессорных устройствах, планируется перенести на Jovial и Ada. В данном проекте особое внимание уделяется связке этих языков. Дело в том, что множество программ, предназначенных для решения боевых задач, довольно бессистемно разрабатывалось как на Jovial, так и на Ada. Теперь же планируется осуществить интеграцию компьютерных программ, написанных на этих языках, с целью обеспечения возможности их совместного использования и лёгкой модификации ПО. Для решения этой задачи будет активно использоваться продукт фирмы Xinotech Research — Xinotech Language Translator (XLT), предназначенный для семантического анализа языков программирования и перевода исходных текстов программ с одних языков на другие с возможностью интерактивного контроля процесса преобразования со стороны пользователя.

https://en.wikipedia.org/wiki/JOVIAL

Цель открытия данной темы - обменяться опытом, вдруг кто-то щупал? Инфы по самому языку довольно мало.

Oleg N. Cher
24.01.2017, 21:18
В целом язык выглядит как хорошо прокачанный Паскаль. Пример кода на Jovial:

http://i.piccy_.info/i9/fcd880f4345816ad18ed64b888027a7e/1485280846/77412/1065564/Jovial.png

- - - Добавлено - - -

Ещё пример кода:
http://cs.ecs.baylor.edu/~maurer/SieveE/jovial.htm

- - - Добавлено - - -

The JOVIAL2C translator converts source code written in JOVIAL to functionally equivalent source code in C taking advantage of some GNU 3.0 extensions of C. The tool has been constructed using the DMS Software Reengineering Toolkit, the JOVIAL Front End, and a customization of the C Front End by GNU extensions for C used by the translator.

http://www.semdesigns.com/Products/MigrationTools/JOVIAL2C.html

Shiny
24.01.2017, 21:57
а чем plm/80 не устраивает?

Oleg N. Cher
24.01.2017, 23:00
Кажите игры и демки, на нём закоденные в большом количестве ;-)

Ну или хотя бы примеры разработки. Хоть hello world. Но в другой теме. Эта про Jovial.

- - - Добавлено - - -

Jovial похож на Pascal, Ada, Modula, Oberon. PL/M похож на ассемблер. Разные подходы. Высокоуровневый и низкоуровневый.

s_kosorev
24.01.2017, 23:07
В целом язык выглядит как хорошо прокачанный ПаскальЧем похож на pascal кроме begin/end, даже ключевая фича присваивание совсем не паскаль, не блока Var итд, в общем вообще не паскаль

Oleg N. Cher
24.01.2017, 23:16
Зато ведёт родословную от Алгола! И явно не Си-подобный, что весьма доставляет.

s_kosorev
24.01.2017, 23:36
А.. ну тогда язык по определению крут

Oleg N. Cher
24.01.2017, 23:43
Просто от сишного синтаксиса меня уже тошнит.

По поводу сходства с Паскалем. Разве ж только в VAR дело? Вот список ключевых слов Jovial:

http://i.piccy_.info/i9/53da346635282d445ae3c1a6299a3d71/1485290291/99322/1065564/Jovial_1.png
http://i.piccy_.info/i9/4a3910cc83dfec6a653a2c60d939bf40/1485290429/83571/1065564/Jovial_2.png
http://i.piccy_.info/i9/ede14066c7c36d93edfec1c2e83e4342/1485290455/56417/1065564/Jovial_3.png

Ещё не Ада или там Модула-3, но уже и не Оберон. У меня лично ассоциации с прокачанным Паскалем.

s_kosorev
24.01.2017, 23:45
Мне от пива тошнит, на правах вброса https://habrahabr.ru/company/hexlet/blog/303160/

Oleg N. Cher
24.01.2017, 23:46
Угу. Читал. Интересно. А пиво тебе никто насильно не заливает. Впрочем, как и мне Си. Но не всегда убережёшься, всё-таки не пиво.

s_kosorev
24.01.2017, 23:46
попадалось что марсоходы и марсолеты тоже только на Ц пишут ибо теоретиков нельзя в серьезные проекты пускать

Oleg N. Cher
24.01.2017, 23:48
Да всё на всём пишут. Но тяготеют к чему? К надёжности. Предпосылки для которой всячески надо встраивать в средства разработки.

Я гляжу, ты самоутверждаешься тем, что ты практик. А Вирт тебе чем не практик? ОС написал, кучу компиляторов.

s_kosorev
24.01.2017, 23:52
Для Ц есть статик анализаторы, они очень много чего находят. Для паскаль языков на слуху что то не припоминается серьезных вещей, было что то от CodeRush да и то по большой части свистелки

Я на Ц не пишу

- - - Добавлено - - -

После просмотра Виртовских компиляторов его вообще перестаешь воспринимать серьезно.
Там *****код студенческого уровня

Oleg N. Cher
25.01.2017, 00:00
Однако задачи он свои решает, притом успешно. А твой код мы ещё не видели, но ой боюсь.

2AOT: вот вам Jovial. Язык серьёзный. Не академический, но мощь чувствуется. Почему я узнал про него только вчера? Потому что шуму информационного много, прости господи. ;-)

Книги по Jovial есть, но их так просто не достать. Статьи есть. Разработки есть. Всё закрыто. Ситуация с Jovial слегка напоминает ситуацию с Оберон-языками, но по последним гораздо больше публикаций, книг и кода. Хотя в общей массе - очень мало.

Нам нужен серьёзный эмигрант или буржуй, который попробует договориться и выписать у ВВС США компилятор, который вроде как действительно безплатный.

s_kosorev
25.01.2017, 00:07
Однако задачи он свои решает, притом успешно.
Угу палка в песке тоже свои функции выполняет, время можно выяснить +-

- - - Добавлено - - -


у ВВС США компилятор, который вроде как действительно безплатный.
и либ не забыть, особенно по связи

Oleg N. Cher
25.01.2017, 00:18
Либ да. Но, чувствую, тут особо губу раскатывать нечего.

Если оказался на безлюдном острове, палка в песке имеет свою прелесть.

Конечно хорошо, что есть статик анализаторы для такого ненадёжного в плане безопасности языка, как Си. Но лучше если предпосылки даёт и сам язык, снижая при этом нагрузку на статический анализ. Хотя польза от него велика и несомненна.

s_kosorev
25.01.2017, 00:36
Ассемблер не может быть надежным. Си это кросплатформенный ассемблер

Oleg N. Cher
25.01.2017, 00:39
Так где статик анализаторы для асма?

- - - Добавлено - - -

Я сейчас в "Обитаемый остров. Землянин" поигрываю. Память течёт, игра время от времени вылетает. С микроскопом глюки, со звуком. Надо полагать, писано на Сях. И, надо полагать, у Сей ограниченная область применимости. Всё сужающаяся. Но ужасает не это. Ужасают мэйнстрим-альтернативы.

s_kosorev
25.01.2017, 01:09
Ога возьми Altium Designer весь течет вдоль и поперек и ой внезапно на дельфях писан

Oleg N. Cher
25.01.2017, 13:21
Ну да. И Дельфи не идеален. Я за автоматическое управление памятью и сборку мусора ваще-то.

Shiny
25.01.2017, 13:39
"На елку влезьть и рыбку съесть". Непонятно, к чему все эти метания по z80.

Oleg N. Cher
25.01.2017, 13:40
Хобби.

bigral
25.01.2017, 16:15
Ну да. И Дельфи не идеален. Я за автоматическое управление памятью и сборку мусора ваще-то.

А в жизни ты тоже за автоматический выбор товаров и услуг вместе со списанием денег за них?

Oleg N. Cher
25.01.2017, 21:08
Не всё так просто. Но не будем разворачивать обширную дискуссию не по теме. У сборки мусора свои плюсы и минусы. Надёжность программного средства не упирается в одну сборку мусора.

s_kosorev
25.01.2017, 23:15
От мемликов gc не спасает.

Shiny
26.01.2017, 07:04
Надёжность программного средства не упирается в одну сборку мусора

спасибо! от души!

Вы хоть представляете себе, как реализовать подобную древность на Спектруме с 48К ?

SfS
26.01.2017, 07:17
Да всё на всём пишут. Но тяготеют к чему? К надёжности. Предпосылки для которой всячески надо встраивать в средства разработки.

Любая надежность в рантайме - это дополнительные ресурсы. Например, Ada может контролировать, чтобы некая переменная всегда была в указанном диапазоне. Это хорошо. Но это требует, чтобы перед каждым присваиванием было два дополнительных сравнения и генерация исключения. А это и время и память.

В общем за все надо платить)

Oleg N. Cher
26.01.2017, 16:00
Господа, всем большое спасибо. Тему я начал для обсуждения Jovial: как попробовать да что оно такое на вкус. Не понятно? А не для того, чтобы вы сыпали перлами своей мудрости, извергая банальные до тошноты истины, известные любому программисту. Нечего сказать по теме - проходим, пожалуйста. Не надо тут срача, не Оберон же, личное достоинство задевать самим фактом своего существования вроде не должен. Ваш многострадательный опыт чту, но мля не о нём сейчас!

Shiny
26.01.2017, 16:14
чисто интересно - слово ".ля", которое употребляется дважды - это завуалированный мат или нет?

blackmirror
26.01.2017, 18:50
Oleg N. Cher, если посмотреть на некоторые 1750 в железе, то можно найти упоминание производительности в 3 MIPS при 30МГц. Сейчас это не очень много, но если учесть что в минимальном варианте должно быть 16 регистров, и 15 из них позволяют адресоваться к памяти, то даже разогнанный Z80 по производительности будет раз в 10 проигрывать, а на стандартных частотах даже считать страшно. Потраченные за 15 лет 16 миллионов означают, что развивался этот язык коллективом в 20-30 человек, кроме того попадаются упоминания, что с 1996 года в военных разработках он больше не применяется. У нас к этому языку имеют отношение наверно десяток военных, которые ничего никому не скажут. А каковы ваши ожидания от применения этого языка для Z80?

Oleg N. Cher
26.01.2017, 20:05
Особо никаких нет, просто интересно пообщаться с людьми, которые что-то знают, щупали. Если таких людей здесь нет, то ладно.

Где попадаются такие упоминания? В викистатье, напротив, сказано, что его усиленно собираются применять и дальше в связке с Ada.

UA3MQJ
26.01.2017, 20:47
Программинг мануал 81 года на 378 листов
https://www.dropbox.com/s/me69l18pfh2yy3l/programming_manual.pdf?dl=0

Shiny
26.01.2017, 20:56
а компилятор этого динозавра для z80 существует?

Oleg N. Cher
26.01.2017, 21:29
В викистатье (https://en.wikipedia.org/wiki/JOVIAL) пишут, что существует:


Применение

В силу жёстких требований, предъявляемых к языку, реализация Jovial, созданная в ВВС США, представляет собой не просто компилятор, а целый комплекс стандартизованных средств разработки. В этом на него похожа Java, в типичную поставку которой помимо компилятора обязательно входит виртуальная Java-машина, набор библиотек, средства отладки, вьюверы, имитирующие работу в Сети и т. д. Так и Jovial распространяется в комплекте разработчика под названием ITS. Этот комплект представляет собой прекрасный пример тщательно продуманного подхода к выбору и совершенствованию средства разработки ПО, которое планируется использовать в ответственных областях десятки лет. В типовой комплект ITS входят кросс-платформные компилятор и макроассемблер, поддерживающий систему команд 1750А, сборщик, символьный интерактивный отладчик, поддерживающий режим реального времени, программный симулятор процессора с набором команд 1750А, библиотека стандартных модулей и загрузчик кода в оборудование 1750 (при наличии соответствующих аппаратных плат). Первая очередь этого комплекса была закончена в 1984 году. Первоначально она функционировала только на мейнфреймах и middleframes, а сегодня работает также под управлением SCO UNIX 3.2 или MS-DOS. ITS обеспечивает генерацию кода (помимо МП 1750А) для VAX, IBM PC, Z80, M680X0, RISC-компьютеров и ряда других. Наиболее популярная реализация ITS для компьютеров серии VAX используется сегодня в более чем 50 подразделениях МО США. Её догоняет реализация для персоналок, работающая под управлением UNIX.

Shiny
26.01.2017, 21:43
http://www.seadeo.com/SEA_Compilers.htm

http://bitsavers.trailing-edge.com/pdf/sdc/jovial/

http://www.textfiles.com/bitsavers/pdf/cdc/cyber/lang/jovial/

https://www.pcweek.ru/themes/detail.php?ID=40191

blackmirror
26.01.2017, 22:04
Похоже я ошибся, упоминание было про MIL-STD-1750A(может его чем-то заменили):
С выпуском 31 июля 1996 года Примечания к 4 ревизии стандарта MIL-STD-1750A был объявлен недействующим для новых военных проектов в США. Тем не менее Indian Space Research Organisation и китайская аэрокосмическая промышленность продолжают применять 1750A в новых проектах.

Попалась такая книжка: https://ru.scribd.com/doc/44512366/JOVIAL-J73-Programming-Language-Tutorial-1982-AD-A142-780 и слева там еще несколько.
И еще такой вот сайт: http://www.seadeo.com/SEA_Compilers.htm, но у них упоминается поддержка не Z80, а Z800x, и оптимизацией его всё равно как-то обидели.

Oleg N. Cher
27.01.2017, 00:19
Спасибо, интересно.

Кому-нить удалось скачать книгу "JOVIAL (J73) Programming Language Tutorial (1982) (https://ru.scribd.com/doc/44512366/JOVIAL-J73-Programming-Language-Tutorial-1982-AD-A142-780)" безплатно?

Вот ещё книга Christopher J. Shaw. A specification of JOVIAL (http://dl.acm.org/citation.cfm?id=763978). Её удалось скачать по номеру DOI. Кому интересно, качайте с форума (http://zx.oberon2.ru/forum/viewtopic.php?f=118&t=302) (в конце поста).

- - - Добавлено - - -

Насколько я понимаю, для разработки под Z80 нам будет интересен именно программный комплекс ITS. Плохо, что в поисковиках ищется "IT'S".

Totem
27.01.2017, 09:54
Комплект ITS (www.jovial.hill.af.mil) распространяется правительством США бесплатно. Для получения (или попытки получения) этого комп¬лекта рекомендовано обращаться к военному атташе американского посольства.

(c) С. .Бобровский.
«Программная инженерия»
С.Петербург, изд-во «Питер», 2003.

:v2_dizzy_tired2::v2_clap2::v2_laugh:


https://www.pcweek.ru/themes/detail.php?ID=40191
К Сергею Бобровскому можно обратиться по адресу: softart@extranet.ru.

Shiny
27.01.2017, 09:57
цитата с сайта:


For more information on specific host/target combinations, please select a button to the left that best meets your host development platform. If you do not find a combination that you require, contact Robert Engimann at (937) 438-4970. We most likely have a combination that will support your project or can quickly retarget to support your efforts.


устройте ddos =)

drbars
31.01.2017, 08:30
Помню, у одного из главных кодеров CB были предпочтения особые.

AND RETURN TO SPECCY AGAIN... BUT WHY? COZ I START MY WORK ON 8-BIT COMPUTERS, SO I LOVE IT (NOT SEXY LOVE - MY SEXY LOVE ARE DEAD CHILDREN)...

demetrius2003
29.09.2017, 10:44
Ох ...! Какая тема! Давно мечтал джовиаль пощупать (непроменительно к З80). А тут такое!
Alex Rider: Удалил из сообщения мат.