Mennä!

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 11. joulukuuta 2021 tarkistetusta versiosta . tarkastukset vaativat 5 muokkausta .
Mennä!
Kieliluokka monisäikeinen
Esiintyi 2003
Tekijä Frances McCabe , Keith Clark
Vaikutettu prologi [1]
Lisenssi GPLv2
Alusta Unix-tyyppinen käyttöjärjestelmä

Mennä!  on monisäikeinen ohjelmointikieli , jonka ovat kehittäneet Keith Clark ja Francis McCabe vuonna 2003. Moniparadigma , joka keskittyy suojattuun ohjelmointiin ja hajautettuihin sovelluksiin (käyttäen agenttiarkkitehtuuria), vahvalla kirjoitusasulla . Toimintojen ja proseduurien sekä niiden välisten suhteiden määrittelyä on tuettu. Säikeet suorittavat toimenpiteitä, kutsuvat toimintoja ja pyytävät tarvittavia yhteyksiä tarpeen mukaan. Eri agenttien säikeet ovat vuorovaikutuksessa toistensa kanssa asynkronisten viestien avulla. Saman agentin säikeet voivat muodostaa dynaamisia linkkejä toisiinsa muodostaen eräänlaisen jaetun muistin.

Moniparadigmaisen luonteensa vuoksi kielellä on tuki loogiselle ja toiminnalliselle ohjelmointille, oliosuuntautuneille ja pakollisille ohjelmointityyleille on tuettu, ja ontologinen mallinnus on täysin tuettu , kuten semanttisessa webissä käytetty tyyppijärjestelmä . mitkä OWL- luokat voidaan esittää tyyppijärjestelminä[ selventää ] [2] .

Googlen oman ohjelmointikielen julkaisun ansiosta Go , Go! joutui nimeämisristiriidan uhriksi, eikä tätä konfliktia ole toistaiseksi ratkaistu [1] .

Esimerkki

Seuraava esimerkki havainnollistaa Go!:ssa käyttöön otettua "ontologista" tyyppiä ja ilmoitustyyliä.

Sukupuoli ::= mies | nainen . henkilö < ˜ { dayOfBirth : []=> päivä . ikä : []=> kokonaisluku . sukupuoli : []=> Sukupuoli . nimi : []=> merkkijono . koti : []=> merkkijono . elää : [ merkkijono ]{}}. henkilö : [ merkkijono , päivä , sukupuoli , merkkijono ] $ = henkilö . henkilö ( Nm , Syntynyt , Sx , Hm )..{ dayOfBirth ()=> Born . ikä () => vuottaVälillä ( nyt (), syntynyt ). sukupuoli ()=> Sx . nimi ()=> Nm . kotiin ()=> hm . elää ( Pl ) :- Pl = koti (). vuottaVälillä : [ kokonaisluku , päivä ]=> kokonaisluku . vuotta Välillä (...) => .. }. newPerson : [ merkkijono , päivä , sukupuoli , merkkijono ]=> henkilö . uusiHenkilö ( Nm , Syntynyt , Sx , Hm )=> $henkilö ( Nm , Syntynyt , Sx , Hm ).

::=-sääntö määrittää uuden algebrallisen tyypin  , tietotyypin , joka koostuu vain datakonstruktoreista .

Sääntö <˜ määrittelee käyttöliittymän tyypin — se kertoo tarkalleen, mitkä ominaisuudet henkilölle tässä tapauksessa luonnehtivat ja asettaa näille ominaisuuksille myös tyypillisiä rajoituksia (rajoituksia). Tämä korjaa sen, että ikä (age) on funktion ominaisuus, jolla on kokonaislukuja, ja parametri 'lives with' (lives) on unaarisuhde merkkijonoille ja parametri 'Birthday' (dayOfBirth) on funktion ominaisuus, joka ilmaisee esine.

Sääntö kuten $= sanoo, että on olemassa myös merkki teoriana (oletuksena), joka osoittaa tiettyä henkilöä; teoria itse määrittelee henkilötyypin (eli henkilörajapinnan eräänlaisen toteutuksen) ominaisuudet, jotka ilmaistaan ​​neljällä parametrilla tyypeillä: merkkijono, päivä, sukupuoli ja merkkijono.

Muistiinpanot

  1. 1 2 Google "Go" -nimi tuo mukanaan syytöksiä "pahasta" - InformationWeek . Haettu 11. marraskuuta 2009. Arkistoitu alkuperäisestä 22. heinäkuuta 2010.
  2. Clark ja McCabe, Applied Intelligence, 2006

Linkit

Kiista ratkaistu. Google säilyttää nimen Go.