Scanlog

Fra DDHFwiki
Spring til navigation Spring til søgning
Bogen om Scanlog

Scanlog er et dialogorienteret femte-generations logisk programmeringssprog, udviklet i Danmark i 1983 til brug for bl. a. gymnasier og seminarier. Det kunne benyttes på Partner/Piccoline samt IBM PC.

Jan Rubæk-Pedersen fortæller:

Mogens Nielsen fra DAIMI underviste i teoretisk datalogi - herunder første ordens logik. Som en afsluttende del af dette skulle vi udvikle en simpel fortolker og det gik godt. Regnecentralen var på det tidspunkt ved at afslutte udviklingen af Partner og Piccoline og savnede dansk software til den tiltænkte anvendelse i undervisning. Michael Madsen var ekstern lektor og arbejdede hos Regnecentralen så Mogens og Michael spurgte om vi ville udvikle et brugervenligt system på dansk.

Syntaks

Opsætningen af fakta er identisk til Prolog.

mand(frederik).
er_mor_til(margrethe, frederik).
er_mor_til(margrethe, joachim).
osv...

definerer to subjekter - frederik og margrethe. Etablerer at frederik er en mand, og margrethe er mor til frederik. Man kan dernæst spørge på databasen med ordren kan, som returnerer Ja eller Nej. Ordren find, søger i databasen for alle løsninger på en søgning med én eller flere variable. Variabler skal staves med stort forbogstav.

Fakta om danske kongelige fra disketten
kan er_mor_til(margrethe, frederik).
Ja
find alle Børn så er_mor_til(margrethe, Børn).
Et svar er frederik
Et svar er joachim

Scanlog bogen

DDHF har en bog i biblioteket med titlen "Scanlog : et dansk logik-programmerings-sprog" af Kurt Fleckner & Jan Rubæk Pedersen.

Bogens forord:

Siden 1970 er flere og flere mennesker blevet interesseret i logik-programmerings-sprog. I den periode blev de første logik-programmerings-sprog skabt og anvendt på relativt store datamaskiner. Senere har man til mikro-datamater udviklet et logik-programmerings-sprog, som blandt anvendes til edb-undervisning af børn i England. I denne bog skal vi se på et dansk udviklet logik-programmerings-sprog, SCANLOG

Man kan spørge, om det virkelig er nødvendigt med endnu et logik-programmerings-sprog, og til det spørgsmål vil vi svare, Ja! Vi mener, at logik-programmerings-sprog er en spændende og anderledes måde at lære at bruge datamater på og vil derfor gerne være med til at udbrede kendskabet til logik-programmerings-sprog. De and sprog »taler« engelsk, og de stammer fra en periode, hvor man ikke tænkte så meget på, at det er mennesker, der skal anvende dem. Kort sagt så er de andre sprog ikke særligt brugervenlige, og jo sværere det er at bruge et produkt, jo færre kan eller vil bruge det. Derfor har vi udviklet SCANLOG.

SCANLOG er for det første langt mere brugervenligt end de andre logik-programmerings-sprog, og for det andet »taler« SCANLOG dansk. SCANLOG udmærker sig desuden ved at indeholde et redigeringssystem, hvor alle kommandoer aktiveres ved tryk på en enkelt tast, og SCANLOG kan derpå forklare, hvordan en løsning til et problem er fundet.

Hvad er logik-programmerings-sprog så for noget? De mere almindelige programmerings-sprog, såsom BASIC, COMAL og Pascal, er sprog, hvori man skridt for skridt beskriver, hvad datamaskinen skal lave. Man giver altså en nøje tilrettelagt plan, som datamaskinen følger. I logik-programmerings-sprog beskriver man, hvilke regler datamaskinen skal følge under løsning af et problem. Logik-programmerne er en beskrivelse af spillereglerne for løsning af et problem, men almindelige programmer er en opskrift på, hvordan problemerne skal løses.

Bogen består af 2 dele. 1. del er en indføring i logik-programmering i SCANLOG og indeholder mange eksempler på logik-programmer. 2. del af bogen er et opslagsværk, hvor man kan finde ud af, hvad de enkelte ting betyder, og hvad man kan lave med SCANLOG.

De første 3 kapitler indeholder en beskrivelse af logik-programmerings-sproget SCANLOG samt mange eksempler for at lette forståelsen. Eksemplerne kan anvendes senere, når man selv programmerer. Kapitlerne er delt op i en gennemgang af SCANLOG baseret på eksempler, og en kørselsvejledning som kan bruges, når man ønsker at afprøve eksemplerne. Kapitlernes 1. del kan således læses uden at bruge en maskine. Samtidigt gives der en grundig og letfattelig introduktion til logik-programmering. Kørselsvejledningen forudsætter, at læseren sidder ved en datamaskine, og den indeholder eksemplerne fra kapitlernes første del samt en forklaring på, hvordan eksemplerne afprøves på datamaskinen. I kapitlernes sidste del findes opgaver af såvel teknisk- som anvendelsesorienteret art. Løsningerne til opgaverne findes bagest i bogen.

I kapitel 4 fortæller vi lidt om hvordan SCANLOG virker, og hvad man kalder de forskellige ting. Vi ser også på risikoen for at lave fejl i programmer og slutter af med at lave et program, som f.eks. kan finde vej gennem en labyrint. Kapitlet kræver forhåndskendskab til logik-programmering. Nybegyndere bør derfor først læse kapitel 1 til 3.

Kapitel 5 indeholder nogle illustrerende eksempler, som alle ligger på SCANLOG-disketten. Vi skal blandt andet se eksempler på bøjning af franske verber, kodning af tekst, protein-syntese, oversættelse af tidsangivelser fra dansk til engelsk, simplificering af aritmetiske udtryk og symbolsk differentiation.

SCANLOG er udviklet af undertegnede ved Datalogisk Afdeling (DAIMI) på Århus Universitet, under vejledning af Mogens Nielsen (DAIMI) og Michael Madsen (ekstern lektor ved DAIMI), som begge har bidraget med mange ideer og konstruktiv kritik til såvel SCANLOG som denne bog. Vi takker Regnecentralen for udlån af datamaskine.

Den 25. juli 1985 Kurt Fleckner & Jan Rubæk Pedersen

Billeder

Se også