Hvordan konvertere en Lisp program til en ME10 Macro

Hvordan konvertere en Lisp program til en ME10 Macro


CoCreate er Hewlett Packard 2D CAD - Computer Aided Design - programvarepakken. Ingeniører bruke den til å lage nye deler. Med makrospråket som følger med CoCreate heter ME10. Ved første øyekast ser ME10 svært forskjellig fra AI språket LISP. Den mengde parenteser som er så karakteristisk for LISP er nesten fravær i ME10. Ved nærmere undersøkelse, men viser det seg at de viktigste aktørene i ME10 er "definere", "loop" og "la" som også er de fremste aktørene i LISP. Bortsett overfladiske skinn, LISP og ME10 er faktisk ganske like.

Bruksanvisning

1 Konverter funksjonsdefinisjoner i LISP til funksjonsdefinisjoner i ME10. Funksjonsdefinisjoner i LISP ser ut som dette: ". End_define" (definere navn (parametre) ABC), og den tilsvarende koden i ME10 vil starte med en linje som har "definere navnet" og ende med en linje som har søkeordet Hver parameter er oppført på egen linje med søkeordet "parameter" og navnet på parameteren. Instruksjonene A, B og C vil være i samme størrelsesorden i ME10 som de var i LISP.

2 Endre sløyfe instruksjonene i LISP som ser slik ut: (loop ABC). I ME10, sløyfer starte med en linje som har søkeordet "loop" og slutter med søkeordet "end_loop" på en linje for seg selv. Det er mange måter å avslutte en løkke i LISP, men bare én vei i ME10. Det er ganske enkelt å konvertere rømming fra et LISP sløyfe i avkjøringen fra en ME10 loop, som alltid ser slik ut: ". Exit_if tilstand"

3 Rewrite "la" uttalelser i LISP. De fungerer akkurat som "la" uttalelser i ME10 bortsett syntaksen er litt annerledes. I LISP de "la" uttalelser se slik ut: (la a1 a2 b1 b2 c1 c2). Dette fører til a2 å være bundet til a1, b2 å være bundet til b1 og c2 til å bli bundet til c1. I ME10, ville det være tre forskjellige linjer: "La a1 a2", "la b1 b2" og "la c1 c2."

4 Husk at i LISP en variabel ikke trenger å bli erklært før den brukes. Dette er ikke sant i de fleste språk - inkludert ME10. Hvis en variabel ikke er deklarert i en "la" eller "parameter" statement i LISP, vil det trenger å bli erklært i ME10. Den enkleste måten å gjøre dette på er å erklære X med en linje som sier "lokal X" før X vises i en annen uttalelse.