Occam

Occam is een programmeertaal voor parallelle architecturen ontwikkeld door Inmos voor de programmering van netwerken van transputer en vervolgens ook geïmplementeerd voor andere platformen. De naam verwijst naar het principe van het scheermes van Occam: het ontwerp van de taal, de Inmos was beperkt tot een minimum set van constructies, worden geïntroduceerd wat leek niet "strikt noodzakelijk" in de zin van de taal. In feite occam kan ook worden omschreven als programmeertaal relatief laag niveau, bijna een soort samenstel. Het model waarin de taal is geïnspireerd door het communiceren Sequential Processen worden beschreven door CAR Hoare in het beroemde boek van de zelfde naam.

Taal overzicht

Kanalen

Communicatie tussen processen wordt gedaan door middel van kanalen met naam. Proces stuurt gegevens naar een kanaal door de exploitant! en het leest van een kanaal met ?. Deze exploitanten hebben een semantische basis rendez-vous, of een proces dat probeert om gegevens te verzenden of ontvangen op één kanaal blijft geschorst totdat een ander proces beschikbaar komt om de operatie uit te voeren op hetzelfde kanaal complementair. Syntactisch, output en input te nemen van de volgende vorm:

Merk op dat in alle code voorbeelden in dit artikel gebruiken het deukje en witruimte zijn aanzienlijk.

Controle Structuren

Controle structuren van Occam zijn geïnspireerd door die van gestructureerd programmeren, maar geherinterpreteerd en uitgebreid in het kader van de parallel programmeren. De inspectie SEQ introduceert een lijst van instructies die worden uitgevoerd in de juiste volgorde:

Zoals je je kunt voorstellen ,: = is de opdracht operator.

De zeggenschapsstructuur van PAR in plaats daarvan bepaalt dat de volgende instructies moeten worden uitgevoerd in parallel

De PAR geeft ook een meer complexe vorm die enige gelijkenis met een lus heeft, en wordt consequent aangeduid met de trefwoorden PAR-FOR. De volgende code fragment verwerft een bepaald getal van vier kanalen in parallel.

De analogie met het "lus" bij het gebruik van de "teller" i. Als een traditionele lus, het fragment van code voert de beschreven vijfmaal "voor i van 0 tot 4"; De vijf ingang acties niet sequentieel uitgevoerd, maar parallel.

De inspectie ALT realiseert het concept van de opdracht met het bewaken van de CSP. Een bewaker is een combinatie van een boolean conditie en een instructie input / output. Een bewaker "geslaagd" als de Booleaanse voorwaarde waar is en zijn instructie ingang is "klaar". Elke guard is gekoppeld aan een instructie die kan worden uitgevoerd als de beschermkap is gebeurd:

Wanneer de verbinding ALT instructie wordt bereikt door de stroming van het programma worden de bewakers geëvalueerd. Indien meerdere succes, één daarvan wordt gekozen en de overeenkomstige instructie wordt uitgevoerd.

Occam 2

occam 2 is een uitbreiding van occam door Inmos in 1987. In de praktijk kunnen occam 2 worden beschouwd als de eerste versie van "gebruik" van taal, terwijl de eerste versie had de connotatie van prototype. Onder de belangrijkste toevoegingen Occam 2 zijn er een soort systeem rijker en subroutines.

Occam 2,1

Occam 2.1 is de tweede uitbreiding van de taal, ontwikkeld door Inmos in 1995. Ondanks de naam, occam 2.1 introduceert vele belangrijke nieuwe functies, waaronder:

  • het vermogen om namen aan de programmeur gedefinieerde geven;
  • record
  • nieuwe exploitanten
  • mogelijkheid arrays kanalen definiëren
  • mogelijkheid om de matrix als return type van de functie omvatten

Voor een volledige lijst van functies van Occam 2.1, die vandaag de dag is de versie "laatste" van de taal, zie de referentie handleiding.

Andere versies

De Inmos heeft geproduceerd specificaties voor een nieuwe versie van Occam, online beschikbaar, maar nog niet de taal implementaties uitgevoerd. Sommige van de innovaties van Occam 3 zijn opgenomen in een compiler voor Occam 2.1 ontwikkeld door een onafhankelijk team bekend als Team Kroc, die bekend staat onder de afkorting van de compiler: Kent Retargettable Occam compiler. De taal samengesteld door Kroc werd later informeel omschreven als occam 2.5, versie nummer dat erop zou wijzen dat de taal is een of andere manier 'halverwege' tussen Occam Occam 2 en 3.

(0)
(0)
Commentaren - 0
Geen reacties

Voeg een Commentaar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha