[go: nahoru, domu]

Occam: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
m →‎top: podczas gdy przy użyciu AWB
AndrzeiBOT (dyskusja | edycje)
m {{Kontrola autorytatywna}} + dr. tech.
 
(Nie pokazano 3 wersji utworzonych przez 3 użytkowników)
Linia 1:
{{małą literą}}
{{Język programowania infobox
| nazwa = occam
| logo =
|data wielkość_loga = 1983
| paradygmat = [[programowanie imperatywne|imperatywny]], [[programowanie proceduralne|proceduralny]], [[Przetwarzanie współbieżne|współbieżny]]
| data = 1983
|typowanie =
| paradygmat = [[programowanie imperatywne|imperatywny]], [[programowanie proceduralne|proceduralny]], [[Przetwarzanie współbieżne|współbieżny]]
| typowanie implementacje =
| implementacje pochodne =
|wersja pochodne = 2.1 (stabilna) / = 1994
| wersja testowa = 2.1 (stabilna) / 1994
|twórca wersja testowa = [[David = May]]
| twórca licencja = [[David May]]
| licencja platforma =
| platforma system =
| system wikibooks =
| wikibooks commons =
| commons www =
| www =
}}
'''occam''' – [[język programowania]], opracowany w roku [[1983 w informatyce|1983]] przez firmę [[INMOS]], a będący praktyczną [[Implementacja (informatyka)|implementacją]] formalizmu [[Communicating Sequential Processes|CSP]] (z ang. ''Communicating Sequential Processes''<ref>http://www.usingcsp.com/cspbook.pdf</ref><ref>Communicating Sequential Processes, [[Charles Antony Richard Hoare|C.A.R. Hoare]]. Prentice Hall International Series in Computer Science, 1985. {{ISBN|0-13-153271-5}} (0-13-153289-8)</ref>). Język opracowany został i był przede wszystkim wykorzystywany jako narzędzie programowania [[transputer]]ów. Nazwa pochodzi od nazwiska [[William Ockham|Williama Ockhama]], kojarzonego z „[[Brzytwa Ockhama|brzytwą Ockhama]]”.
 
occam jest [[język proceduralny|językiem proceduralnym]]. Charakterystyczną jego cechą jest wsparcie dla [[Przetwarzanie współbieżne|programowania współbieżnego]]. Program w occamie uruchamia typowo wiele [[proces (informatyka)|procesów]], które mogą komunikować się między sobą za pośrednictwem nazwanych [[kanał komunikacyjny|kanałów komunikacyjnych]]. Komunikacja za pośrednictwem kanałów jest synchroniczna – komunikujące się procesy mogą kontynuować wykonanie, dopiero gdy zakończy się wymiana [[dane|danych]]. Kanały zapewniają więc również [[synchronizacja|synchronizację]] procesów.
Linia 27 ⟶ 26:
occam jest językiem świadomie minimalistycznym i bardzo formalnie zdefiniowanym. Zabronione są wszelkie konstrukcje, które mogłyby prowadzić do niejednoznaczności działania programu (np. równoległe procesy nie mogą modyfikować żadnych wspólnych lokacji pamięci, do których mają dostęp). Umożliwia to formalne dowodzenie poprawności programów napisanych w tym języku.
 
Obecnie istnieje działający na współczesnych komputerach [[kompilator]] occama, KRoC ([[Język angielski|ang.]] ''Kent Retargetable occam Compiler''). Kompiluje on programy do plików wykonywalnych działających współbieżnie. Wspiera on też post-mortem debugging, czyli [[debugowanie]] programu po błędzie, który spowodował jego wyłączenie, również wyłączenie spowodowane [[zakleszczenie]]m.
 
== Wersje języka ==
Linia 39 ⟶ 38:
 
=== occam 2.1 ===
'''occam 2.1'''<ref name="oc21refman">{{cytuj książkę | nazwisko=INMOS | autor link=INMOS | url=http://www.wotug.org/occam/documentation/oc21refman.pdf|tytuł=occam 2.1 Reference Manual|wydawca=SGS-THOMSON Microelectronics Ltd|data=1995-05-12}}</ref> był ostatnim z serii ulepszeń occama, w które miała wkład firma INMOS. Zdefiniowany w 1994 r., miała na niego wpływ wcześniejsza propozycja języka '''occam 3''' (zwanego także "occam91" we wczesnych fazach jego rozwoju), stworzonego przez Geoffa Barretta w INMOSie we wczesnych latach dziewięćdziesiątych. Ulepszony Podręcznik Użytkownika opisujący occam 3 był rozprowadzany w społeczności<ref name="occam3">{{cytuj |autor=Geoff Barrett, Steven Ericsson-Zenith|tytuł=occam 3 Reference Manual|url=http://www.wotug.org/occam/documentation/oc3refman.pdf|data=1992-03-31|wydawca=[[INMOS]]| data dostępu=2008-03-24}}</ref>,, ale język nigdy nie otrzymał działającego kompilatora.
 
occam 2.1 wnosić nową funkcjonalność do occama 2, mianowicie:
Linia 73 ⟶ 72:
 
{{Języki programowania}}
{{Kontrola autorytatywna}}
 
[[Kategoria:Języki programowania]]