Госу (язык программирования) - Gosu (programming language)
Было высказано предположение, что GScript быть слился в эту статью. (Обсуждать) Предлагается с октября 2020 года. |
Эта статья нужны дополнительные цитаты для проверка.Февраль 2015 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчик | Участники Guidewire и открытого исходного кода |
---|---|
Стабильный выпуск | 1.14.6 / 5 апреля 2017 г. |
Печатная дисциплина | статический |
Платформа | Выполнить на Виртуальная машина Java, статически и динамически компилируется в байт-код |
Операционные системы | любая поддерживающая JVM |
Лицензия | Лицензия Apache 2.0 |
Расширения имени файла | .gs, .gsp, .gst, .gsx |
Интернет сайт | госу-ланг |
Под влиянием | |
Ява, C # | |
Под влиянием | |
Котлин |
Госу это статически типизированный язык программирования общего назначения что работает на Виртуальная машина Java. Его влияния включают Ява, C #, и ECMAScript. Разработка Gosu началась в 2002 году. Программное обеспечение Guidewire, и язык был впервые выпущен сообществом в 2010 году под Apache 2 лицензия.[1]
Gosu может служить языком сценариев, имея типы программ произвольной формы (файлы .gsp) для сценариев, а также статически проверенные файлы шаблонов (файлы .gst). Gosu может дополнительно выполнять эти и все другие типы непосредственно из исходного кода без предварительной компиляции, что также отличает его от других статических языков.
История
Gosu начал свою деятельность в 2002 году как скриптовый язык под названием GScript в компании Guidewire Software. Он использовался для настройки бизнес-логика в приложениях Guidewire и представлял собой более простой язык определения правил. В своем первоначальном воплощении он последовал ECMAScript руководящие указания. Guidewire улучшила язык сценариев в течение следующих 8 лет и выпустила бета-версию Gosu 0.7 для сообщества в ноябре 2010 года. Бета-версия 0.8.6 была выпущена в декабре 2010 года, а бета-версия 0.8.6 была выпущена в середине 2011 года с дополнительными загрузчиками типов, что сделало Gosu способным загрузки Определение схемы XML файлы и XML-документы как собственные типы Gosu. Последняя версия - 1.10, выпущенная в январе 2016 года, вместе с новым плагином редактора IntelliJ IDEA.
Философия
Создатель и руководитель разработки языка Gosu Скотт МакКинни подчеркивает прагматизм, заключающийся в удобочитаемости и удобочитаемости, как главенствующий принцип, определяющий дизайн языка.[2] Например, богатая система статических типов Госу - необходимый ингредиент для создания лучших в своем классе инструментов с помощью статический анализ программирования, богатая обратная связь парсера, завершение кода, детерминированный рефакторинг, анализ использования, навигация и тому подобное.
Синтаксис и семантика
Госу следует синтаксису, напоминающему комбинацию других языков. Например, объявления следуют больше по строкам Паскаль с грамматикой по первому имени. Классы Gosu могут иметь в качестве членов функции, поля, свойства и внутренние классы. Номинальное наследование и композиция через делегирование встроены в систему типов, а также в структурную типизацию, аналогичную Идти язык программирования.
Gosu поддерживает несколько типов файлов:
- Класс (файлы .gs)
- Программа (файлы .gsp)
- Улучшение (файлы * .gsx)
- Шаблон (файлы * .gst)
В дополнение к стандартным типам классов Gosu поддерживает перечисления, интерфейсы, структуры и аннотации.
Программные файлы упрощают использование Gosu в качестве языка сценариев. Например, Hello, World! это простая однострочная программа:
Распечатать("Привет, мир!")
Классы Gosu также исполняются а-ля Java:
учебный класс Главный { статический функция главный(аргументы: Нить[]) { Распечатать("Привет, мир!") }}
Типы данных
Уникальной особенностью Gosu является его система открытых типов, которая позволяет легко расширять язык для обеспечения проверки во время компиляции и осведомленности IDE об информации, которая обычно проверяется только во время выполнения на большинстве других языков. Усовершенствования позволяют добавлять дополнительные функции и свойства к другим типам, включая встроенные типы Java, такие как String, List и т. Д. В этом примере демонстрируется добавление функции print () к java.lang.String.
улучшение MyStringEnhancement : Нить { функция Распечатать() { Распечатать(это) }}
Теперь вы можете указать String печатать себя:
"Эхо".Распечатать()
Сочетание закрытие а улучшения обеспечивают мощный способ кодирования с помощью коллекций. В Gosu накладные расходы на потоки Java не нужны:
вар список = {1, 2, 3}вар результат = список.куда(\ элем -> элем >= 2)Распечатать(результат)
Использует
Этот язык программирования общего назначения используется в основном в Программное обеспечение Guidewire коммерческие продукты.
Рекомендации
- ^ "Открытый доступ к языку программирования Gosu". Slashdot. 2010-11-09.
- ^ «Язык месяца: Госу». Журнал доктора Добба. 2012-12-07.
дальнейшее чтение
- Гросс, Карсон (18 июля 2011 г.). «Возможности языка как библиотека: использование системы открытого типа Gosu с внешними DSL» (PDF). Языковой саммит JVM 2011. Oracle. видео