Go! (язык программирования)

Go! (язык программирования)

Статью, посвященную языку программирования, созданного компанией Google Inc. см. Go (язык программирования)

Go!
Класс языка:

многопоточный

Появился в:

2003 г.

Автор(ы):

Фрэнсис МакКейб, Кейт Кларк

Лицензия

GPLv2

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

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

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

Содержание

Пример

Нижеследующий пример иллюстрирует 'онтологический' тип и стиль объявлений, принятый в Go!.

Gender::= male | female.
person <˜ {dayOfBirth:[]=>day. age:[]=>integer.
gender:[]=>Gender. name:[]=>string.
home:[]=>string. lives:[string]{}}.
person:[string,day,Gender,string]$=person.
person(Nm,Born,Sx,Hm)..{
dayOfBirth()=>Born.
age() => yearsBetween(now(),Born).
gender()=>Sx.
name()=>Nm.
home()=>Hm.
lives(Pl) :- Pl=home().
yearsBetween:[integer,day]=>integer.
yearsBetween(...) => ..
}.
newPerson:[string,day,Gender,string]=>person.
newPerson(Nm,Born,Sx,Hm)=>$person(Nm,Born,Sx,Hm).

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

Правило <˜ определяет тип интерфейса — это говорит о том, какие именно свойства характеризуют в данном случае человека (person) а также накладывает типовые ограничения (constraints) на эти свойства. Это фиксирует то, что возраст (age) — функциональное свойство с целыми значениями, а параметр 'проживает с' (lives) — унарное отношение для строк, а параметр 'День Рождения' (dayOfBirth) — функциональное свойство, указывающее день объекта.

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

См. также

Примечания

  1. Clark and McCabe, Applied Intelligence, 2006
  2. Google 'Go' Name Brings Accusations Of 'Evil' — InformationWeek

Спор разрешен. Гугл оставляет название GO.

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Go! (язык программирования)" в других словарях:

  • Язык программирования C++ — Эта статья о книге; о языке программирования см.: C++. Язык программирования C++ The C++ Programming Language Автор: Бьёрн Страуструп Язык оригинала: английский Оригинал издан: 1986 Издательство: Addison–Wesley …   Википедия

  • Язык программирования Java — разработанный корпорацией Sun Microsistems межплатформенный, интерпретируемый, объектно ориентированный язык программирования, используемый для создания приложений, работающих в под управлением веб браузера и характеризующихся высоким уровнем… …   Финансовый словарь

  • Язык программирования Паскаль — процедурно ориентированный язык программирования высокого уровня, предназначенный для широкого класса задач. Язык Паскаль считается языком структурного программирования. По английски: Pascal language См. также: Процедурно ориентированные языки… …   Финансовый словарь

  • Язык программирования — искусственный (формальный) язык, предназначенный для записи алгоритмов. Язык программирования задается своим описанием и реализуется в виде специальной программы: компилятора или интерпретатора. По английски: Programming language Синонимы:… …   Финансовый словарь

  • Язык программирования COBOL — язык программирования, предназначенный для решения экономических задач и задач обработки коммерческой информации. Язык COBOL отличается развитыми средствами работы с файлами и формой записи, приближенной к английскому языку. По английски: COBOL… …   Финансовый словарь

  • Язык программирования Лисп — универсальный язык программирования высокого уровня. Язык Лисп: относится к декларативным языкам функционального типа; предназначен для обработки символьных данных, представленных в виде списков. Основой языка являются функции и рекурсивные… …   Финансовый словарь

  • Язык программирования Ада — универсальный язык программирования: предназначенный для создания сложных систем; характеризующийся высокой степенью независимости от операционных систем; обеспечивающий поддержку средств параллельной обработки данных в реальном времени. По… …   Финансовый словарь

  • Язык программирования Алгол — язык программирования, предназначенный для решения численных задач. Программа на языке ALGOL имеет блочную структуру, позволяющую эффективно реализовывать механизмы динамического распределения памяти. По английски: ALGOL language См. также:… …   Финансовый словарь

  • Язык программирования Модула — алгоритмический язык, предназначенный для составления программ, работающих в реальном времени. В языке Модула используются: понятия модуля и процесса; средства программирования низкого уровня. Программа на языке Модула формируется из независимых… …   Финансовый словарь

  • Язык программирования Пролог — язык логического программирования, программа на котором состоит: из логических утверждений, образующих базу данных; и из правила вывода новых утверждений из известных. По английски: PROLOG language См. также: Декларативные языки программирования… …   Финансовый словарь

  • Язык программирования Форт — процедурно ориентированный язык программирования, предназначенный для эффективной работы с персональными системами. Форт близок к языку ассемблера. См. также: Процедурно ориентированные языки программирования Финансовый словарь Финам …   Финансовый словарь


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»