Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Разработка на языке Jovial https://zx.oberon.org/forum/viewtopic.php?f=118&t=302 |
Страница 1 из 1 |
Автор: | Zorko [ 24 янв 2017, 22:01 ] | ||
Заголовок сообщения: | Разработка на языке Jovial | ||
Цитата: История создания Американский программист Джолиус Шварц (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), предназначенный для семантического анализа языков программирования и перевода исходных текстов программ с одних языков на другие с возможностью интерактивного контроля процесса преобразования со стороны пользователя. Цель данной темы — обменяться опытом, вдруг кто-то щупал? Инфы по самому языку довольно мало. В целом выглядит как хорошо прокачанный Паскаль. Пример кода на Jovial: Цитата: 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.
|
Автор: | vlad [ 25 янв 2017, 19:24 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Zorko писал(а): В целом выглядит как хорошо прокачанный Паскаль. Пример кода на Jovial: Что там от паскаля кроме BEGIN/END? GOTO? Очень старый язык и это заметно, недаром его пытаются заменить чем-то более вменяемым... |
Автор: | Zorko [ 25 янв 2017, 20:11 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Старый, традиционный, компилируемый в натив язык с сильной кроссплатформенностью. Вменяемым — т.е. Адой? Это неоднозначно, Ада сильно сложнее. Про «что там от Паскаля». P.S. Тема — информативная, так она задумана. Не для "а я на других языках работаю, и они сильно круче". |
Автор: | vlad [ 26 янв 2017, 08:08 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Zorko писал(а): Старый, традиционный, компилируемый в натив язык с сильной кроссплатформенностью. Вменяемым — т.е. Адой? Это неоднозначно, Ада сильно сложнее. Ада - прошлый век Как насчет Rust? https://www.rust-lang.org/en-US/ Zorko писал(а): А, да, слона то я и не заметил - КАПС же ш это наше все! Добавляет +50% к обероноподобности Вот оберонщики очень любят аналогии. Я тут как раз хорошую аналогию придумал. Оценивать ЯП по синтаксису - это все равно, что оценивать людей по цвету кожи. И при этом делать далеко идущие выводы на основе своего предыдущего опыта общения с одним-двумя условно "черными". Zorko писал(а): P.S. Тема — информативная, так она задумана. Не для "а я на других языках работаю, и они сильно круче". Боишься, что я С++ к ночи упомяну? |
Автор: | vlad [ 26 янв 2017, 08:49 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Куча народа обсуждает языки для встроенных систем: http://systemdesign.altera.com/tomorrow ... e-still-c/ Мелькает в основном C/C++. Немножко питон и джава. Упоминается несколько раз Ada и Rust. Jovial не упоминается ни разу Возможно для своего времени Jovial был неплохим языком и его заслуженно взяли военные. Напомню, что С появился на 10 лет позже. Ну а дальше понятно - куча кода, который никто не будет перписывать и специалисты, которых никто не будет переучивать. А денег и так дадут (налогоплательщики). Так оно и дожило до наших дней, когда, наконец, специалисты поуходили на пенсию, а разрыв с окружающей реальностью стал совсем уж неприличным. В итоге приняли волевое решение переписывать софт бомбардировщиков на С/С++. Чего тут удивляться то? Оберонщиков не спросили, потому что показать им нечего, кроме рассусоливаний на тему Истинной Модульности (tm) и преимуществ ":=" перед "=". |
Автор: | Zorko [ 26 янв 2017, 15:09 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Не "истинной" модульности, а "минималистичной", каковой она и должна быть в языке, который называют ООП-ассемблером или "Эсперанто" от программирования. Я заметил одну тенденцию, впрочем, в природе человеческой. Стоит затронуть тему редкую, в которую многие не вникали, но как-то по-своему понимают (видимо, "по аналогии"), как сразу начинается срач и выяснения, чей опыт опытнее и чьи языки языкастее. Тему я открыл для обсуждения Jovial. И понимаю под этим: нечего сказать? Милости просим, проходите. Именно так я сам общаюсь на форумах. Но обычно всегда сказать есть что, у вас же свой опыт, и он очень ценен для вас лично. Как тут не поделиться со страждущими от недостатка просвещения заблудшими Ну Rust, да. И чего? Ржавый язык, читал я про него. И про Go. Не впечатляют. По-другому я представляю себе хороший ЯП универсального назначения. Разумеется, более похожим на Оберон. По семантике, не только по синтаксису. Да, не впадай в ересь и не считай один случай переписывания софта для бомбардировщиков на С/С++ повальной тенденцией. Никто ничего на Си не спешит переписывать. Как видим, у МО США свои собственные технологии и языки, и делиться наработками и даже инфой о них никто в этих кругах особо не хочет. А Jovial видится по сути своей вовсе не таким архаичным как, например, FORTRAN. vlad писал(а): Оценивать ЯП по синтаксису - это все равно, что оценивать людей по цвету кожи. Список ключевых слов Jovial видел? Из него я делаю некоторый вывод о семантических возможностях языка. Ещё я читал по нему инфу, что нашёл. Jovial действительно происходит от Алгола, как и Паскаль. Опыта разработки на Алголе у меня нет, поэтому и отнёс его к паскалеподобным. А если ты делаешь выводы о непаскалеподобности на основе синтаксиса присваивания или отсутствия секции описания переменных, то кто тебе доктор.
|
Автор: | vlad [ 26 янв 2017, 16:49 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Zorko писал(а): Я заметил одну тенденцию, впрочем, в природе человеческой. Стоит затронуть тему редкую, в которую многие не вникали, но как-то по-своему понимают (видимо, "по аналогии"), как сразу начинается срач и выяснения, чей опыт опытнее и чьи языки языкастее. Тему я открыл для обсуждения Jovial. Дык, мы Jovial и обсуждаем! Где срач то? Был выдвинут тезис о родстве с паскалем. Это тезис критически оспорили (причем не только я - по той ссылке тоже). Покажи в каком месте какашки полетели? Zorko писал(а): Ну Rust, да. И чего? Ну вот конкретно про Rust из декларируемого и важного именно для встроенных систем я бы выделил: - zero-cost abstractions - move semantics - guaranteed memory safety - threads without data races - minimal runtime - efficient C bindings Zorko писал(а): По-другому я представляю себе хороший ЯП универсального назначения. Разумеется, более похожим на Оберон. По семантике, не только по синтаксису. О, я чувствую конструктив где-то рядом! Итак, что не так с семантикой у Go? Хотя бы пару пунктов можешь привести? Zorko писал(а): Список ключевых слов Jovial видел? Видел. Ни о чем не говорит. Даже пресловутый GOTO может на деле представлять что угодно. |
Автор: | Zorko [ 26 янв 2017, 18:57 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
vlad писал(а): Был выдвинут тезис о родстве с паскалем. Это тезис критически оспорили Этот тезис не критически оспорили. Никто ни в этой теме, ни в той не разбирался с Jovial, накидали мнений на основе своего "видения", как-то так. И, как всегда, разошлись недовольные друг другом, оставшись при своих мнениях. В спорах не рождается истина, в спорах рождается самоутверждение, что, видимо, ценно для тех, кто его недополучает.Было бы в разы интереснее поговорить с тем, кто хотя бы не по диагонали почитал док по Jovial. Не хочу о Rust и Go. Интересуют их недостатки? Читай хабр. Гугл вроде тоже не забанили. Или ты будешь утверждать, что оных недостатков оные языки не имеют вовсе? Мне язык D больше приглянулся. Но недостатки у него всё те же: маленькое сообщество, отсюда малая база кода и знаний, непредсказуемая стратегия развития (непонятно во что выльется в итоге? или вообще забросят?). Зависимость от одного производителя (будущее языка зависит от судьбы фирмы). Язык не настолько распространён, чтобы его поддержкой занимался кто-то, кроме производителя. Невозможность развивать и поддерживать своими силами или маленьким коллективом (сотни тысяч строк кода). Общая непредсказуемость и туманные перспективы. |
Автор: | geniepro [ 12 фев 2018, 07:55 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Jovial происходит от одного из первых диалектов Алгола (видимо алгол-58 ещё), задолго до Паскаля, который был разработан на основе Алгола-60 с оглядкой на Алгол-68. Так что Джовиал всё же алголоподобный язык, а не паскалеподобный. То что в Джовиале ключевые слова в верхнем регистре вполне понятно -- в те времена обычно использовалась 6-битная кодировка, а там строчных букв-то и нету... Стоит ли сейчас ориентироваться на этот старинный язык? Учитывая сложности получения его бесплатного компилятора (обращения ко всяким военным атташе) и довольно высокую стоимость коммерческого транслятора (ну и опять же, нужно обращаться к "компетентным органам"), уж лучше пользоваться другими языками. Для микроконтроллеров есть не только компиляторы си, с++, но и паскаля, ады, и даже модулы-2 с обероном. |
Автор: | prospero78su [ 22 май 2018, 12:05 ] |
Заголовок сообщения: | Re: Разработка на языке Jovial |
Приходится по работе разбираться с Go, и с ним многое не так. Нет нормальной модульности. Идея интерфейса -- убогая. Идея удовлетворению интерфейсу -- убогая. Типизация сделана по нищебродски (непонятно зачем тогда нужны интерфейсы??) Библиотека -- сойдёт, местами приятна. Многопоточность заигрывает с гонками. Сама по себе недостаточно абстрагирована. Привязка полей типов к полям JSON -- прямо скажем извращение. По сравнению с питоном -- да, мощный шаг вперёд. По сравнению с Компонентным Паскалем -- что-то смищное. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |