В какой отрасли в основном использовался язык jovial
Перейти к содержимому

В какой отрасли в основном использовался язык jovial

  • автор:

Wiki Jovial

JOVIAL — высокоуровневый язык программирования, похожий на ALGOL, специализированный на разработке встраиваемых систем.

История

JOVIAL был разработан в 1959 году как новый «высококачественный» язык программирования командой корпорации System Development Corporation (SDC) во главе с Жюлем Шварцем для создания программного обеспечения для электроники военных самолётов. Название JOVIAL является аббревиатурой «Jules’ Own Version of the International Algebraic Language». По словам Шварца, язык изначально назывался OVIAL, но это название по разным причинам отвергалось. Тогда было предложено название «JOVIAL», без какого-либо значения буквы «J» (на англ. , фр. , исп. и т.д. jovial «весёлый; жизнерадостный»). В шутку было высказано предположение, что язык назван в честь Шварца, поскольку он председательствовал на собрании, и это неофициальное название окончательно закрепилось.

В 1960-е годы JOVIAL был частью серии военных проектов США, в частности 465L (проект SACCS ) из-за отсутствия доступных языков обработки в режиме реального времени. Около 95 % программного обеспечения проекта SACCS было написано на JOVIAL.

В конце 1970-х и начале 1980-х годов ВВС США приняли стандартизованный процессор MIL-STD-1750A, и программы на JOVIAL создавались для этого процессора. Для таких процессоров несколько коммерческих компаний разработали компиляторы и связанные с ними инструменты для разработки на JOVIAL (Advanced Computer Techniques , TLD Systems , Proprietary Software Systems и другие).

JOVIAL был стандартизован в 1973 году как MIL-STD-1589; развитие языка было зафиксировано в 1984 году в MIL-STD-1589C. Язык по-прежнему широко используется для обновления и обслуживания программного обеспечения на старых военных транспортных средствах и самолётах. Существует три диалекта: J3, J3B-2 и J73.

По состоянию на 2010 год JOVIAL больше не поддерживается и не распространяется Управлением программ JOVIAL USAF (JPO). Программное обеспечение, ранее распространенное JPO, по-прежнему доступно через коммерческие ресурсы Software Engineering Associates, Inc. (SEA), а также другие хост-процессоры, включая Microsoft Windows, Linux, Mac OS X на PowerPC, SPARC, VAX, 1750A, PowerPC , TI-9989, Zilog Z800x, Motorola 680×0 и IBM System 360 / System 370 / System z. Кроме того, DDC-I , который приобрёл части Advanced Computer Techniques , по-прежнему отображает компиляторы JOVIAL и связанные с ними инструменты.

Большинство программ, реализованных на JOVIAL, имеют критически важное значение, и их обслуживание становится всё более сложным. В декабре 2014 года было сообщено, что программное обеспечение, использующее JOVIAL, выпущенное в 1960-х годах, было связано с крупным провалом инфраструктуры управления воздушным движением Соединённого Королевства и что использующее его агентство должно было обучать своих IT-специалистов программированию на JOVIAL, чтобы они могли работать с этим программным обеспечением, которое не планируется заменять до 2016 года. Поэтому преобразование кода JOVIAL на новые платформы становится всё более распространённым явлением. Конверция JOVIAL на другие языки в настоящее время выполняются Semantic Designs, инструмент DMS Software Reengineering Toolkit использовался для преобразования некоторых программ JOVIAL для бомбардировщика B-2 на язык C.

Влияние

По словам Шварца, JOVIAL испытал влияние таких языков программирования, как CORAL , SYMPL , Space Programming Language (SPL) и, в некоторой степени, CMS-2 .Интерактивное подмножество JOVIAL под названием TINT, похожее на JOSS , было разработано в 1960-х годах.

Особенности

JOVIAL включает функции, не найденные в стандартном ALGOL, такие как записи, массивы записей и встроенный язык ассемблера.

Пример

Следующий пример взят из «Руководства по программированию на языке JOVIAL (J73)».

PROC RETRIEVE(CODE:VALUE); BEGIN ITEM CODE U; ITEM VALUE F; VALUE = -99999.; FOR I:0 BY 1 WHILE I

В этом примере определяется процедура с именем RETRIEVE , которая принимает аргумент CODE с целым беззнаковым числом и аргумент вывода с плавающей запятой VALUE . Он ищет в 1000-элементном массиве TABCODE запись, которая соответствует CODE , а затем устанавливает переменную VALUE с плавающей запятой в элемент массива TABVALUE , имеющий тот же самый соответствующий индекс массива. Если соответствующий элемент не найден, значение VALUE равно -99999.0.

JOVIAL

В ходе развития военной техники и расширения области использования в ней электроники привело к необходимости создания специализированного ПО для встроенной бытовой техники. Причем к создаваемым программам предъявлялись специфические требования, связанные с особым уровнем секретности и специфичностью архитектур микропроцессоров, используемых в военных системах и нестандартностью наборов их команд. Изначально программы писались на машинных кодах, что, конечно, дорого стоило и не являлось эффективным. Поэтому возникла потребность в создании новых специальных средств разработки.

Одной из первых инициатив по созданию таких систем стала американская военная директива 9070 от 26 октября 1983 года, констатировавшая необходимость создания универсального средства разработки ля бортовых авиационных систем. Основными требованиями были: высокая надежность получаемого кода, эффективность работы программ в условиях жесткой нехватки памяти, а также скорость и дешевизна разработки проектов. Такое средство бало найдено достаточно быстро. Им оказался старый язык программирования Jovial, созданный в 1959 году Джолиусом Шварцем (Jules Schwartz), который дополнил язык OVIAL (ведущий свою родословную от одного из диалектов Алгола – языка программирования IAL).

При создании Jovial Шварц поставил перед собой целью возможность создания кросс-платформенных приложений, работающих в режиме реального времени. Во внутреннюю структуру Jovial-машины заложены гибкие возможности по платформонезависимой оптимизации кода и быстрому переносу программ при изменении архитектуры микропроцессора. Кроме того строгая организация структуры файлов с исходными текстам, не позволявшая созание конструкций, зависящих от конкретной машины, позволяла переносить программы с одной платформы на другую. Эти возможности и определили выбор ВВС США.

К настоящему времени JOVIAL по-прежнему развивается, поддерживается и совершенствуется. Появляются все новые реализации среды разработки на JOVIAL, называемой ITS. ITS представляет собой целый комплекс программных средств, включающий кросс-платформные компилятор и макроассемблер, поддерживающий систему команд 1750А, сборщик, символьный интерактивный отладчик, поддерживающий режим реального времени, программный симулятор процессора с набором команд 1750А, библиотека стандартных модулей и загрузчик кода в оборудование 1750 (при наличии соответствующих аппаратных плат). Работавшая изначально только на main- и middleframes ITS сейчас существует в версиях для SCO UNIX 3.2 или MS DOS.

В перспективе МО США с целью стандартизации всего используемого программного обеспечения планирует перевести ПО бортовых систем на JOVAIL и Ada, причем особое внимание уделяется интеграции программ на этих языках программирования. В связи с этим перспективы JOVIAL можно оценить как очень хорошие, поскольку электронизация вооруженных сил требует не только создания новых программ для нового оборудования, но и тесной интеграции прежних разработок с новыми. Таким образом связка JOVIAL – Ada, активно используемая уже сейчас в ближайшем будузем не будут знать конкурентов в этой области.

Статья подготовлена по материалам сайтов "Планета КИС" и TutorGid.com

В какой отрасли в основном использовался язык jovial

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

Jovial — это язык программирования, разработанный в 1959 году и используемый во многих отраслях. Его основной целью было облегчить разработку надежных и безопасных программ для критических систем. Язык Jovial зарекомендовал себя как надежный и эффективный инструмент для разработки программного обеспечения в областях, где безопасность и надежность критически важны.

Одной из отраслей, где Jovial нашел широкое применение, является авиационная индустрия. Этот язык позволяет разработчикам создавать программы для авионных систем, которые гарантируют безопасность и надежность полета. Jovial предоставляет разработчикам возможность создавать программы, которые проверяются на ошибки и отклонения, чтобы обеспечить максимальную безопасность во время полета.

В области автомобильной промышленности Jovial также нашел свое применение. Этот язык позволяет разработчикам создавать программы для автомобильных систем, которые гарантируют безопасность и надежность на дороге. Jovial позволяет создавать программное обеспечение, которое проверяет работу автомобильных систем и предотвращает возможные аварийные ситуации.

Еще одной отраслью, где Jovial активно используется, является медицинская сфера. Язык Jovial позволяет разработчикам создавать программное обеспечение для медицинских систем, которые обеспечивают точность и надежность в диагностике и лечении пациентов. Jovial позволяет создавать программы, которые могут быть проверены и протестированы для обеспечения безопасности пациента.

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

Использование языка Jovial в медицинской сфере

Использование языка Jovial в медицинской сфере

Язык Jovial обладает строгой типизацией данных и структурами управления, что позволяет разработчикам создавать сложные программы для медицинских устройств. Он обладает широким набором функций и возможностей, которые позволяют легко работать с большим объемом данных и обрабатывать их в реальном времени.

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

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

Jovial также применяется в разработке программного обеспечения для медицинских исследований. С его помощью создаются программы для анализа медицинских данных, моделирования биологических процессов и разработки новых методов диагностики и лечения.

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

Применение языка Jovial в авиационной индустрии

Язык Jovial широко применяется в авиационной индустрии для разработки программного обеспечения, связанного с авиационными системами. Этот язык программирования был специально создан для обеспечения высокой надежности и безопасности программ, используемых в авиации.

Одной из основных областей применения языка Jovial в авиационной индустрии является разработка систем автоматического управления полетом. Jovial обладает возможностями, позволяющими разрабатывать программы, которые обеспечивают стабильность и безопасность полета. Благодаря своим строгим правилам и ограничениям, Jovial позволяет разработчикам создавать надежное программное обеспечение, которое отвечает высоким стандартам авиационной индустрии.

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

Преимущества использования языка Jovial в авиационной индустрии:

Высокая надежность и безопасность программного обеспечения
Строгие правила и ограничения, обеспечивающие стабильность полета
Возможность разрабатывать программы для различных задач авиации
Эффективная обработка данных и обеспечение безопасности систем

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

Использование языка Jovial в финансовом секторе

Использование языка Jovial в финансовом секторе

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

Одной из основных областей использования Jovial в финансовом секторе является разработка и поддержка банковских систем. Благодаря своей высокой надежности и технической гибкости, Jovial может обрабатывать большие объемы данных, обеспечивая безопасность и эффективность банковских операций.

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

Еще одной областью применения Jovial в финансовом секторе является создание программных систем для управления инвестиционными портфелями. С помощью Jovial можно разработать надежные и эффективные системы, которые позволят управлять инвестициями, отслеживать доходность портфеля, анализировать риски и прогнозировать результаты.

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

Применение языка Jovial в производстве

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

Кроме надежности, Jovial обладает высокой производительностью и эффективностью. Он позволяет создавать оптимизированный код, который работает быстро и эффективно. Это особенно важно в производстве, где время и ресурсы являются критически важными факторами.

Jovial также обеспечивает хорошую читаемость кода и простоту его сопровождения. Благодаря своей синтаксису и структурированности, Jovial позволяет разработчикам быстро разбираться в коде и вносить необходимые изменения. Это существенно упрощает процесс разработки и сопровождения программного обеспечения в производстве.

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

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

Использование языка Jovial в телекоммуникационной отрасли

Использование языка Jovial в телекоммуникационной отрасли

Первое преимущество Jovial заключается в его надежности и стабильности. Телекоммуникационные системы требуют высокой отказоустойчивости, и Jovial обеспечивает это благодаря своей строгой типизации и проверке границ массивов. Это помогает предотвратить ошибки в программном коде, которые могут привести к сбоям системы.

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

Третьим преимуществом Jovial является его простота использования. Он имеет понятный и лаконичный синтаксис, что облегчает понимание и разработку программ. Это особенно важно в телекоммуникационной отрасли, где программисты могут сталкиваться с сложными задачами и непредсказуемыми условиями.

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

Применение языка Jovial в атомной энергетике

Применение языка Jovial в атомной энергетике

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

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

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

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

Видео по теме:

Вопрос-ответ:

Какие отрасли могут использовать язык jovial?

Язык jovial может быть использован в различных отраслях, включая авиацию, оборону, телекоммуникации, финансы и промышленность.

Какие особенности делают язык jovial полезным для авиационной отрасли?

Язык jovial обладает высокой надежностью и безопасностью, что делает его идеальным выбором для программирования авиационных систем.

Каковы преимущества использования языка jovial в финансовой отрасли?

Использование языка jovial в финансовой отрасли позволяет создавать надежные и безопасные программные системы для обработки финансовых данных.

Можно ли использовать язык jovial в промышленности?

Да, язык jovial может быть использован в промышленности для разработки программного обеспечения, контроля и мониторинга промышленных систем.

Какие компании могут использовать язык jovial?

Язык jovial может быть использован компаниями, занимающимися авиацией, обороной, телекоммуникациями, финансами и промышленностью.

В каких отраслях широко используется язык Jovial?

Язык Jovial широко используется в авиационной и космической отраслях. Он был разработан в 1950-х годах для программирования систем управления полетом и до сих пор остается одним из основных языков в этой сфере.

Какие преимущества использования языка Jovial в авиационной и космической отраслях?

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

Использование языка Jovial в научных исследованиях

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

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

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

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

Важным аспектом Jovial является его возможность взаимодействия с другими языками программирования и системами. Jovial может быть интегрирован с языками высокого уровня, такими как С, а также с различными операционными системами и программными средами. Это позволяет исследователям использовать Jovial в сочетании с другими инструментами и ресурсами для достижения оптимальных результатов.

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

Применение языка Jovial в автомобильной индустрии

Применение языка Jovial в автомобильной индустрии

Язык программирования Jovial широко применяется в автомобильной индустрии для разработки программного обеспечения автомобилей. Jovial был разработан в 1959 году и быстро получил широкое распространение в отрасли благодаря своей надежности и эффективности.

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

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

Еще одной областью применения Jovial является разработка систем комфорта и развлечений в автомобилях. С помощью языка Jovial можно создавать программы, которые управляют системами кондиционирования воздуха, аудиосистемами, навигацией и другими удобствами, делая поездку более комфортной и удовлетворяющей потребности водителя и пассажиров.

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

3 комментария к “Использование языка jovial в разных отраслях”

Язык Jovial является универсальным инструментом, который можно успешно применять в разных отраслях. В моей работе в сфере маркетинга и рекламы, я часто сталкиваюсь с необходимостью обрабатывать большие объемы данных. Использование Jovial позволяет мне значительно упростить процесс анализа и обработки информации. Благодаря его простой и интуитивно понятной синтаксису, я могу быстро писать программы, которые помогают мне автоматизировать рутинные задачи, такие как сбор данных о потенциальных клиентах или анализ результатов маркетинговых кампаний. Язык Jovial также широко используется в сфере разработки программного обеспечения. Благодаря своей надежности и высокой производительности, он стал популярным выбором для создания критически важных систем, таких как авионика и медицинские устройства. Кроме того, Jovial имеет много полезных функций, которые облегчают разработку и обслуживание сложных программных систем. Наконец, Jovial также находит применение в области научных исследований. С его помощью ученые могут моделировать и анализировать сложные физические и математические системы. Он обладает мощными математическими возможностями, которые позволяют решать сложные уравнения и строить точные модели. В целом, Jovial — это мощный язык программирования, который можно использовать в разных отраслях. Он обладает простым синтаксисом, высокой производительностью и широкими функциональными возможностями, что делает его незаменимым инструментом для решения различных задач. Ответить

Статья очень интересна и познавательна. Язык jovial является мощным инструментом, который может быть применен во многих отраслях. Например, в сфере программирования, он может быть использован для разработки высокоэффективных и надежных систем. Благодаря своей простоте и элегантности, jovial позволяет разработчикам создавать качественный и чистый код. В медицинской отрасли, язык jovial может быть использован для моделирования и анализа сложных систем, таких как реакция организма на лекарственное вещество или распространение инфекции. Его возможности могут помочь врачам и ученым в создании новых методов лечения и предотвращения заболеваний. Также, язык jovial может быть полезен в сфере финансов. Благодаря своей высокой производительности и надежности, он может быть использован для разработки программного обеспечения для финансовых анализов, управления рисками и прогнозирования рыночных тенденций. Это поможет финансовым учреждениям в принятии правильных и обоснованных решений. Язык jovial имеет огромный потенциал и может быть использован во многих других отраслях, таких как авиационная и космическая промышленность, производство и телекоммуникации. Он позволяет создавать надежные и эффективные системы, которые удовлетворяют самым высоким требованиям безопасности и надежности. Выводя общие идеи на поверхность, статья показывает, что язык jovial является мощным инструментом, который может быть применен в разных отраслях. Его простота и эффективность делают его незаменимым для разработки высококачественных и надежных систем. Ответить

Язык программирования Jovial, разработанный в 1959 году для использования в системах авиации и космических полетов, оказался невероятно полезным и в других отраслях. В моей работе в сфере инженерии, я применяю этот язык для разработки и тестирования программного обеспечения. Его простота и надежность помогают мне создавать надежные и эффективные решения для сложных задач. Jovial также активно используется в автомобильной промышленности. Благодаря своей способности обрабатывать большие объемы данных и эффективно управлять процессами, он помогает автомобильным производителям совершенствовать системы управления автомобилем и обеспечивать безопасность и комфорт для водителей. В области медицины Jovial также нашел свое применение. Он используется для разработки программного обеспечения, контролирующего и обрабатывающего медицинские данные. Благодаря своей надежности и точности, Jovial помогает улучшить качество медицинского обслуживания и обеспечивает безопасность пациентов. Как пользователь Jovial, я впечатлен его возможностями и гибкостью. Он позволяет мне легко создавать и модифицировать программы, что существенно упрощает мою работу. Благодаря своей универсальности, Jovial находит применение в различных сферах, и я уверен, что его популярность будет только расти. Ответить

В какой отрасли в основном использовался язык jovial

Jules' Own Version of IAL (IAL - International Algebraic Language - раннее название для Algol-58, послужившего отправной точкой для разработчиков языка). Пожалуй, один из первых языков программирования, позволяющий нормально работать с железом. Собственно и делался он для программирования SAC Communication and Control System (SACCS): напрограммировавшись при разработке SAGE (SemiAutomatic Ground Environment) на ассемблере, Jules Schwartz и компания в 1959 году решили придумать что-то получше. Характер задачи оказал решающее влияние на язык: поскольку он делался для программирования большой интерактивной и распределенной системы реального времени, то им пришлось во-первых принимать во внимание вопросы эффективности и низкоуровневого программирования, и, в отличие от тогдашнего mainstream'a (тогда языки были в основном специализированными - для коммерческих задач, для вычислительных etc) не замыкаться в отдельной области.

Получилось в общем неплохо, а для того времени - очень хорошо. Когда я читал описание, я с тоской вспоминал те времена, когда приходилось программировать на Фортране - в смысле, насколько бы все было проще и лучше. Реализован язык был очень быстро - первые компиляторы появились в 1960 году, а в 1961 JOVIAL уже был реализован на себе самом (вероятно второй в истории компилятор, написанный методом раскрутки - первым был NELIAC). С практическим применением, несмотря на неотлаженность и медленность компилятора, тоже все оказалось довольно хорошо и с тех пор в USAF очень любят JOVIAL и до сих пор его используют.

Забавно происхождение названия: в предварительных проработках язык фигурировал как OVIAL (Our Version of IAL). Когда дело подошло к более формальной разработке, граждане озадачились тем, что название вызывает нездоровые ассоциации, и что надо бы облагородить звучание. Облагораживать решили при помощи добавления буквы J в начало и оставалось только придумать, что бы это могло значить. В порядке хохмы была предложена вышеприведенная расшифровка, после чего, ничего не решив, публика разъехалась по домам. А спустя некоторое время Jules Shwartz обнаружил, что название уже вписано в разнообразные контракты и техзадания и менять уже себе дороже.

Чем язык интересен:

Он будучи "широко известен в узких кругах" оказал несомненное влияние на развитие языков программирования:"Официально" оно признано только в Coral66 и Ada, но imho несомненно еще в нескольких языках (что забавно - в Wiki очень много написано про его военную карьеру, но ни слова не сказано о том, чем он собственно говоря, замечателен):

Во-первых - в Pascal - перечислимые типы, диапазоны и модификатор packed - прямое заимствование, записи с вариантами, думаю, тоже попытка адаптировать интересные, хотя и кривоватые записи JOVIAL.

В PL/I влияние тоже очевидно - система типов до степени смешения напоминает JOVIAL-овскую, хотя enum-ы и диапазоны они выкинули, зато остальное цветет буйным цветом - в том числе "атрибутная" форма описания типов.

Ну и несомненно и сильно влияние JOVIAL на Ada: что скорее всего связано с происхождение обоих языков: Довольно естественно, что DoD при формулировке требований не хотел расставаться с уже имеющимися вкусностями и более или менее все возможности JOVIAL переехали в техзадание на Ada.

Теперь собственно про сам язык:

Излагаю я по опубликованной в 1963 году в CACM спецификации языка (версия 1973 года уже куда более наворочена). Примеры в основном взяты оттуда же.

Во-первых - обещанные enum'ы

Пример я уже показывал:

ITEM RUNWAY'CONDITION S V(OK) V(WET) V(ICY) V(SNOW) V(BLOCKED)$

ITEM - это ключевое слово, обозначающее объявление переменной, RUNWAY'CONDITION - имя переменной ("'" был просто буквой, которую можно было использовать для повышения удобочитаемости имен). S - тип переменной - перечисление (сокращение от Status). Далее идут значения. $ обозначает конец объявления.

Использовать это можно было примерно так:

IF RUNWAY'CONDITION EQ V(OK)$ .

Диапазоны

При описании переменных можно было специфицировать диапазон их значений:

ITEM CEILING U 0..511$

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

Другие типы данных

Целых в языке строго говоря не было - были знаковые и беззнаковые числа с фиксированной двоичной точкой (привет от PL/I и Ada), еще был такой курьезнейший, но в условиях тех времен весьма практичный тип: "сдвоенные" (Dual) числа с фиксированной точкой. Характеризовались добавлением модификатора D. Смысл состоял в том, что в тогдашних машинах слова были весьма длинные - и в одной слово вполне можно было впихнуть два значения не слишком большой разрядности. Dual значения и содержали пару чисел, а арифметика etc выполнялась одновременно над соответствующими компонентами пар (в случае, например, сложения Dual значения с обычным обычное "раздваивалось"). Вещь кривоватая, но практичная. Недавно оно к нам вернулось в виде разнообразных MMX 🙂

Таблицы и layouts

Как известно, авторы большинства ранних языков при попытках придумать структуры изобретали нечто весьма экзотическое. JOVIAL не исключение. Его создатели почему-то решили, что структуры такая хорошая вещь, что их обязательно должно быть много и потому они обязательно должны образовывать массив. В результате получилось нечто странное под названием "таблицы" (tables).

Таблица - это массив структур. Описывается довольно прямолинейно:

TABLE AIRBASE'WEATHER R 85 S D$ ITEM REPORT'HOUR A 5 U 0..23$ ITEM REPORT'MINUTE A 6 U 0..59$ . ITEM RUNWAY'CONDITION S V(OK) V(WET) V(ICY) V(SNOW) V(BLOCKED)$ . END

Атрибут A nnn задает количество бит в значении. Атрибут R 85 задает то, что таблица имеет фиксированный размер 85 элементов (есть еще V max-size - таблицы "переменного" размера: то есть резервируется все равно "по максимуму", но при таблице хранится счетчик элементов.

Более забавны два других атрибута:

Атрибут D задает способ упаковки: он может принимать три значения: Dense, Medium и No. N означает, что каждое поле в таблице занимает отдельное слово/группу слов, D означает, что поля упаковываются как можно плотнее, M - что поля упаковываются на границы "естественных" подполей слов (полуслова etc - в зависимости от архитектуры) - на современных архитектурах примерным аналогом M будет отказ от выравнивания полей на границы слов (атрибут можно задавать и индивидуально для полей).

Аттрибут S - это атрибут, управляющий расположением таблицы. Значения у него два: Serial и Parallel. Пожалуй, единственный атрибут, оправдывающий превращение структуры в массив. Он определяет как располагать поля в памяти: S подразумевает привычный нам последовательное расположение "запись за записью". А вот P пожалуй не имеет аналогов: он означает, что сначала идет массив из всех первых полей структуры, потом - из всех вторых, и так далее (на самом деле даже хитрее - если несколько последовательных полей влезают в одно слово, они все-таки размещаются вместе, и очередной массив набирается уже из таких n-ок. Вещь странноватая, но в случае необходимости заниматься оптимизацией представления данных весьма полезная.

Еще одна фишка состоит в возможности указывать точное расположение полей в записях:

ITEM KEY A 6 U 3 12$

Поле KEY (шириной 6 бит) располагается в 3-ем слове начиная с 12-го бита. Кажется мелочью, но все, кто программировал низкоуровневые железки, фичу заценят.

Оператор DEFINE

В отличие от подавляющего большинства создателей языков тех времен, авторам JOVIAL'a таки пришла в голову идея, что выписывать по много раз одни и те же списки атрибутов неудобно и несопровождабельно и что с этим что-то надо делать. Идея для тех времен наверное отличалась новизной и оригинальностью: это был макрооператор DEFINE без параметров (в J73 он уже обзаведется параметрами):

DEFINE RUNWAY'CONDITION'VALUES "V(OK) V(WET) V(ICY) V(SNOW) V(BLOCKED)"$

В пояснениях, думаю, не нуждается.

Оператор TEST

Видимо, первое явление Христа бурому медведю оператора continue народу имело место тоже в JOVIAL. Там это называлось оператор TEST и имело ровно тот самый смысл. Кроме прочего, тамошний TEST позволял специфицировать на какой именно уровень следует выходить - просто путем указания переменной-параметра соответствующего цикла:

FOR I = 1,1,100$ BEGIN FOR J=I,1,100$ BEGIN IF I+J EQ 150$ TEST I$ END END

Странное ключевое слово, выбранное для этого оператора, объясняется тем, что имеется в виду "переход на проверку условия выполнения следующей итерации цикла"

Мелочь, а приятно: оператор итерации по элементам таблицы (как бы массива):
FOR I = ALL (BASES)$ .

Тут все понятно.

Прикольный оператор ==

Смешной довольно - выполняет exchange значений по обе стороны оператора:

Работа с битовыми/байтовыми полям

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

Итак: есть конструкция

Обозначает ровно то самое. Может быть и получателем в операторе присваивания. Если значение занимает несколько слов, диапазон может пересекать границу слова. Например:

BIT($0,6$)(COLUMN) = BIT($0,6$)(COLUMN) + (I - 2)

Теперь еще раз напомню, что дело происходит во времена, когда у машин слова длинные, а единицей адресации является слово. Термин "байт" уже в ходу - но в смысле, что скажем 37-разрядное слово содержит 6 6-битных байтов: байт - это стандартная для данной машины группа битов в слове, которая используется для хранения символа. В некоторых архитектурах работа с байтами поддерживалась аппаратно, в некоторых все делалось руками. Потому кроме BIT есть модификатор BYTE с аналогичной семантикой, только он манипулирует не битами, а байтами.

Для комплекта отмечу еще модификаторы MANT и CHAR, которые "вырезают" из вещественного числа мантиссу и характеристику. Пример из спеки: преобразование плавающего числа в представление с фиксированной точкой:

MANT (BETA) * 2 ** CHAR (BETA)
Ассемблерные вставки

Опять же - сделано было довольно забавно: Был оператор DIRECT список-команд JOVIAL, внутри которого можно было вставлять набор команд ассемблера. Для доступа к переменным была псевдокоманда ASSIGN, которая позволяла пересылать данные между переменными программы и регистром-аккумулятором. Мелочь - но опять-же - очень нужная в реальной жизни даже сейчас.

Дальнейшее развитие

Как уже говорилось - в 73 году вышел стандарт языка: там уже DEFINE обзавелся параметрами, завелась условная компиляция, появились указатели и динамическое управление памятью etc etc. Но это уже не очень интересно, поскольку к тому времени новизна этих фич уже подутратилась.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *