Kategorisk abstrakt maskin
Den kategoriska abstrakta maskinen ( CAM ) är en beräkningsmodell för program som bevarar förmågan till applikativ, funktionell eller kompositionsstil. Den är baserad på teknikerna för applicative computing .
Översikt
Föreställningen om den kategoriska abstrakta maskinen uppstod i mitten av 1980-talet. Det tog sin plats inom datavetenskap som en slags beräkningsteori för programmerare, representerad av kartesisk sluten kategori och inbäddad i den kombinatoriska logiken . CAM är en transparent och sund matematisk representation för språken för funktionell programmering. Maskinkoden kan optimeras genom att använda ekvationsformen av en beräkningsteori. Med hjälp av CAM kan de olika beräkningsmekanismerna som rekursion eller lat utvärdering emuleras såväl som parameteröverföring, som call by name , call by value , och så vidare. I teorin bevarar CAM [ hur? ] alla fördelar med objektstrategi för programmering eller beräkning.
Den huvudsakliga nuvarande implementeringen är OCaml, som lade till klassarv och dynamisk metodsändning till Caml Categorical Abstract Machine Language. Båda är varianter av MetaLanguage ML , och alla tre språken implementerar typinferens .
Genomförande
En av implementeringsmetoderna för funktionella språk ges av maskineriet baserad på superkombinatorer , eller en SK-maskin, av D. Turner. Begreppet CAM ger ett alternativt tillvägagångssätt. Strukturen för CAM består av syntaktiska, semantiska och beräkningskomponenter. Syntax är baserad på de Bruijns notation , som övervinner svårigheterna med att använda bundna variabler. Utvärderingarna liknar dem för P. Landins SECD-maskin . Med denna täckning ger CAM en god grund för syntax, semantik och beräkningsteori . Denna förståelse uppstår som påverkad av den funktionella stilen av programmering.
Se även
Vidare läsning
- Wolfengagen, VE Kombinatorisk logik i programmering : beräkningar med objekt genom exempel och övningar . 2:a uppl. M.: "Center JurInfoR" Ltd., 2003. x+337 с. ISBN 5-89158-101-9 .