Бар! (бағдарламалау тілі) - Go! (programming language)

Бар!
ПарадигмаМультипарадигма: қатарлас, логика, функционалды, императивті (объектіге негізделген )
ЖобалағанФрэнсис МакКейб, Кит Кларк
Бірінші пайда болды2003; 17 жыл бұрын (2003)
Алдын ала қарау
9-30-07 / 30 қыркүйек 2007 ж; 13 жыл бұрын (2007-09-30)
Пәнді терукүшті
ОЖUnix тәрізді
ЛицензияGPLv2
Әсер еткен
Пролог[1]

Бар! болып табылады агенттерге негізделген дәстүрі бойынша бағдарламалау тілі логикалық негізделген бағдарламалау сияқты тілдер Пролог.[1] Ол Фрэнсис Маккэб және 2003 жылғы мақалада енгізілген Кит Кларк.[2]

Дизайн

Go! Авторлары оны «а көппарадигмалық бағдарламалау тілі бағдарламалаудың қауіпсіздігіне, өндіріс сапасы мен агенттерге негізделген қосымшалардың қажеттіліктеріне бағытталған. Бұл көп бұрандалы, қатты терілген және жоғары тәртіп (функционалды бағдарламалау мағынасында). Онда қатынас, функция және іс-қимыл процедураларының анықтамалары бар. Ағындар іс-қимыл процедураларын орындайды, функцияларды шақырады және қажет болған жағдайда қатынастарды сұрайды. Әр түрлі агенттердегі жіптер асинхронды хабарламалар көмегімен байланысады және үйлестіреді. Бір агенттегі ағындар сондай-ақ әрекет ететін ортақ динамикалық қатынастарды қолдана алады Линда -стиль кортеж дүкендері."[2]

Авторлар сонымен қатар тілді бейнелеуге ыңғайлы деп ұсынады онтология оның интеграциялануына байланысты логика, функционалды және императивті бағдарламалау стильдері.[3]

Мысал

Келесі мысал Go-дің «онтологияға бағытталған» түрін және декларация стилін көрсетеді ::[3]

Жыныстық қатынас ::= ер | әйел. адам <~ {dayOfBirth: [] => күн. жас: [] => бүтін. жынысы: [] => Жыныстық қатынас. атауы: [] => жіп. үй: [] => жіп. өмір сүреді: [жіп] {}}. тұлға: [жіп, күн, Секс, жіп] $= адам. адам (Nm, туған, Sx, Hm) .. {dayOfBirth () => Туған. жас () => жылдар (қазір (), туған) арасында. жыныс () => Sx. аты () => Nm. үй () => Хм. өмір сүреді (Pl) :- Pl = үй (). жылдар арасында: [бүтін, күн] => бүтін. жылдар арасында [...] => ..}. жаңа адам: [жіп, күн, Секс, жіп] => адам. жаңа адам (Nm, туған, Sx, Hm) => $ адам (Nm, туған, Sx, Hm).

The ::= ереже жаңаны анықтайды мәліметтердің алгебралық түрі, а деректер түрі тек деректер конструкторларымен.

The <~ ереже интерфейс түрін анықтайды - бұл а-ға қандай қасиеттер тән екенін көрсетеді адам сонымен қатар осы қасиеттерге типтік шектеулер береді. Бұл құжат жас - бұл бүтін мәні бар функционалды қасиет, бұл өмір сүреді - бұл жолдарға қатысты бірыңғай қатынас, және бұл dayOfBirth тип объектісі болып табылатын мәні бар функционалды қасиет күн.

The $= тип ережесі, сонымен қатар, функциясы бар теория белгісі бар екенін көрсетеді адамсипаттамаларын анықтайтын теория үшін адам түрі - жүзеге асырады адам интерфейс - типтердің берілген төрт параметрі бойынша жіп, күн , Жыныстық қатынас, және жіп.

Google-мен жанжал

2009 жылдың қараша айында, Google ұқсас атаумен шығарылды Бағдарламалау тіліне өтіңіз (жоқ леп белгісі ). Маккэб Google-ден олардың тілінің атауын өзгертуін сұрады, өйткені олар «бізді айналдырып жатыр» деп алаңдады.[1][4] Бұл мәселе технологиялық жаңалықтар веб-сайттарының назарын аударды, олардың кейбіреулері Go! «түсініксіз» ретінде.[5] Тақырып бойынша ашылған шығарылымды Google әзірлеушісі 2010 жылдың 12 қазанында «Сәтсіз» мәртебесімен және келесі пікірмен жауып тастады: «Go атты көптеген есептеуіш өнімдер мен қызметтер бар. Біздің шыққаннан кейінгі 11 ай ішінде екі тілдің шатасуы болды ».[6]

Әдебиеттер тізімі

  1. ^ а б c Клабурн, Томас (2009-11-11). «Google 'Go' атауы 'зұлымдыққа айып тағуда'". Ақпараттық апта. Алынған 2009-11-14.
  2. ^ а б Кларк, К.Л .; МакКейб, Ф.Г. (2003). Бар! көп бұрандалы кеңес агенттері үшін. Автономдық агенттер жөніндегі халықаралық конференция (AAMAS'03). 964–965 беттер. CiteSeerX  10.1.1.117.184. дои:10.1145/860575.860747. ISBN  978-1581136838.
  3. ^ а б Кларк, К.Л .; МакКейб, Ф.Г. (2006). «Онтологияға бағытталған бағдарламалау!». Қолданбалы интеллект. 24 (3): 189–204. CiteSeerX  10.1.1.117.184. дои:10.1145/860575.860747.
  4. ^ «9-шы шығарылым - мен * MY * бағдарламалау тілінің атын қолдандым». 2009-11-10. Алынған 2009-11-14.
  5. ^ Браунли, Джон (2009-11-13). «Google бағдарламалау тіліне ат қоймас бұрын» Go «google-ін қолданған жоқ. Geek.com. Алынған 2010-01-18.
  6. ^ «Мен бұл атауды * MY * бағдарламалау тілі үшін қолданғанмын. № 9 басылым · golang / go». GitHub. Алынған 2019-07-04.

Әрі қарай оқу

Сыртқы сілтемелер