Госу (язык программирования)
![]() | В этой статье используются голые URL-адреса , которые неинформативны и уязвимы к порче ссылок . ( сентябрь 2022 г. ) |
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2015 г. ) |
Разработчик | Guidewire и участники открытого исходного кода |
---|---|
Стабильная версия | 1.18.1 [1] ![]() |
Дисциплина набора текста | статический |
Платформа | Выполняется на виртуальной машине Java , статически и динамически компилируется в байт-код. |
ТЫ | любая поддерживающая JVM |
Лицензия | Лицензия Апач 2.0 |
Расширения имен файлов | .gs, .gsp, .gst, .gsx |
Веб-сайт | это просто госу |
Под влиянием | |
Ява , С# | |
Под влиянием | |
Котлин |
Gosu — статически типизированный язык программирования общего назначения , работающий на виртуальной машине Java . На него повлияли Java , C# и ECMAScript . Разработка Gosu началась в 2002 году внутри компании Guidewire Software , а первый выпуск языка был выпущен сообществом в 2010 году под лицензией Apache 2 . [2]
Gosu может служить языком сценариев, имея типы программ свободной формы (файлы .gsp) для сценариев, а также статически проверенные файлы шаблонов (файлы .gst). Gosu может опционально выполнять эти и все другие типы непосредственно из исходного кода без предварительной компиляции, что также отличает его от других статических языков.
История
[ редактировать ]Gosu начал свою деятельность в 2002 году как язык сценариев GScript в компании Guidewire Software. [3] [4] Он был описан как вариант Java , который пытается внести полезные улучшения, сохраняя при этом фундаментальную полезность и совместимость с Java. Он использовался для настройки бизнес-логики в приложениях Guidewire и представлял собой скорее простой язык определения правил. В своем первоначальном воплощении он следовал ECMAScript рекомендациям . Компания Guidewire усовершенствовала язык сценариев в течение следующих 8 лет и выпустила для сообщества бета-версию Gosu 0.7 в ноябре 2010 года. Бета-версия 0.8 была выпущена в декабре 2010 года, а бета-версия 0.8.6 была выпущена в середине 2011 года с дополнительными загрузчиками типов, что сделало Gosu способным загрузки файлов определения схемы XML и документов XML как собственных типов Gosu. Последняя версия — 1.10, выпущенная в январе 2016 года вместе с новым плагином редактора IntelliJ IDEA.
Guidewire продолжает широко поддерживать и использовать Gosu в приложениях InsuranceSuite. На данный момент компания Guidewire решила приостановить разработку новых конструкций языка программирования Gosu. Guidewire продолжает развивать InsuranceSuite посредством API-интерфейсов RESTful и инфраструктур интеграции, доступ к которым можно получить с помощью Java.
Философия
[ редактировать ]Создатель языка госу и руководитель разработки Скотт МакКинни подчеркивает прагматизм, заключающийся в читабельности и доступности , как основополагающий принцип, лежащий в основе дизайна языка. [5] Например, богатая система статических типов Gosu является необходимым компонентом лучших в своем классе инструментов, позволяющих использовать статический анализ программ , обширную обратную связь с анализатором, завершение кода , детерминированный рефакторинг, анализ использования, навигацию и тому подобное.
Синтаксис и семантика
[ редактировать ]Госу следует синтаксису, напоминающему комбинацию других языков. Например, объявления больше похожи на Паскаль с грамматикой имени сначала. Классы Gosu могут иметь в качестве членов функции, поля, свойства и внутренние классы. Номинальное наследование и композиция посредством делегирования встроены в систему типов, а также в структурную типизацию, аналогичную языку программирования Go .
Gosu поддерживает несколько типов файлов:
- Класс (файлы .gs)
- Программа (файлы .gsp)
- Улучшение (файлы *.gsx)
- Шаблон (файлы *.gst)
В дополнение к стандартным типам классов Gosu поддерживает перечисления, интерфейсы, структуры и аннотации.
Программные файлы облегчают использование Gosu в качестве языка сценариев. Например, Hello, World! Госу! это простая однострочная программа:
print("Hello, World!")
Классы Gosu также являются исполняемыми в стиле Java:
class Main {
static function main(args: String[]) {
print("Hello, World!")
}
}
Типы данных
[ редактировать ]Уникальной особенностью Gosu является его система открытого типа, которая позволяет легко расширять язык, обеспечивая проверку во время компиляции и осведомленность IDE о информации, которая в большинстве других языков обычно проверяется только во время выполнения. Усовершенствования позволяют добавлять дополнительные функции и свойства к другим типам, включая встроенные типы Java, такие как String, List и т. д. В этом примере показано добавление функции print() в java.lang.String.
enhancement MyStringEnhancement : String {
function print() {
print(this)
}
}
Теперь вы можете указать String напечатать себя:
"Echo".print()
Сочетание замыканий и улучшений обеспечивает мощный способ кодирования с помощью коллекций. Накладные расходы на потоки Java в Gosu не нужны:
var list = {1, 2, 3}
var result = list.where(\ elem -> elem >= 2)
print(result)
Использование
[ редактировать ]Этот язык программирования общего назначения используется в основном в Guidewire Software коммерческих продуктах .
Ссылки
[ редактировать ]- ^ «Выпуск 1.18.1» . 8 июля 2024 г. Проверено 23 июля 2024 г.
- ^ «Язык программирования Gosu стал общедоступным» . Слэшдот . 09.11.2010.
- ^ http://www.guidewire.com
- ^ https://gosu-lang.github.io/
- ^ «Язык месяца: госу» . Журнал доктора Добба . 07.12.2012.
Дальнейшее чтение
[ редактировать ]- Гросс, Карсон (18 июля 2011 г.). «Функции языка как библиотека: использование системы открытого типа Gosu с внешними DSL» (PDF) . Языковой саммит JVM 2011 . Оракул. Видео
Внешние ссылки
[ редактировать ]- Языки программирования
- Объектно-ориентированные языки программирования
- Семейство языков программирования Java
- Языки программирования JVM
- Программное обеспечение, использующее лицензию Apache
- Языки программирования, созданные в 2002 году.
- Языки программирования высокого уровня
- Кроссплатформенное бесплатное программное обеспечение
- Бесплатные компиляторы и интерпретаторы