Jump to content

Госу (язык программирования)

Гоша
Разработчик Guidewire и участники открытого исходного кода
Стабильная версия
1.18.1 [1]  Отредактируйте это в Викиданных / 8 июля 2024 г .; 25 дней назад ( 8 июля 2024 г. )
Дисциплина набора текста статический
Платформа Выполняется на виртуальной машине Java , статически и динамически компилируется в байт-код.
ТЫ любая поддерживающая JVM
Лицензия Лицензия Апач 2.0
Расширения имен файлов .gs, .gsp, .gst, .gsx
Веб-сайт это просто госу .github .что
Под влиянием
Ява , С#
Под влиянием
Котлин

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. ^ «Выпуск 1.18.1» . 8 июля 2024 г. Проверено 23 июля 2024 г.
  2. ^ «Язык программирования Gosu стал общедоступным» . Слэшдот . 09.11.2010.
  3. ^ http://www.guidewire.com
  4. ^ https://gosu-lang.github.io/
  5. ^ «Язык месяца: госу» . Журнал доктора Добба . 07.12.2012.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 76d53d84d9828fbf80368b8e7eefe94f__1710984660
URL1:https://arc.ask3.ru/arc/aa/76/4f/76d53d84d9828fbf80368b8e7eefe94f.html
Заголовок, (Title) документа по адресу, URL1:
Gosu (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)