Go!


Go! — многопоточный язык программирования, разработанный Кейтом Кларком и Фрэнсисом Маккейбом в 2003 году. Мультипарадигмален, ориентирован на безопасное программирование и распределённость приложений (с применением агентной архитектуры), со строгой типизацией. Есть поддержка определений функций и процедур, а также взаимосвязей между ними. Потоки исполняют процедуры, вызывают функции и запрашивают необходимые связи по мере надобности. Потоки разных агентов взаимодействуют между собой при помощи асинхронных сообщений. Потоки одного агента могут устанавливать динамические связи друг с другом, образовывая своего рода общую память.

Благодаря своей мультипарадигменной природе язык обладает поддержкой логического и функционального программирования, есть поддержка объектно-ориентированного и императивного стилей программирования, а также в полной мере поддерживается онтологическое моделирование, наподобие системы типов, используемой для Семантической паутины, благодаря чему OWL-классы могут быть представлены в виде системы типов[прояснить][2].

В связи с запуском корпорацией Google собственного языка программирования Go, Go! стал жертвой коллизии наименований, причём этот конфликт не разрешён до сих пор[1].

Правило ::= определяет новый алгебраический тип — тип данных, состоящий только из конструкторов данных.

Правило типа $= говорит о том, что присутствует также пометка как теории (предположения) с указанием конкретной персоны; сама теория определяет характеристики типа человека (то есть своего рода реализация интерфейса человека), выражающиеся в данных четырёх параметрах с типами: string, day, Gender и string.