«Samtale» med datamaskiner
Av «Våkn opp!»s korrespondent i Japan
«NYTT DIALOGSYSTEM FOR DATAMASKIN,» stod det i reklamen. Jeg lo litt for meg selv når jeg tenkte på en person som samtalte med en maskin. Betydde dette at datamaskinen kunne føre en dialog med noen? Hva går det an å oppnå ved å kommunisere med en maskin? De svarene jeg fikk av en venn som arbeider med datamaskiner, var svært interessante.
Først og fremst fikk jeg vite at den kommunikasjon som reklamen sikter til, ikke foregår ved hjelp av stemmen. Den omtales vanligvis som interaktiv modus eller dialogform (det å gi instruksjoner til datamaskinen og så få svar med en gang). Dette kan foregå enten ved hjelp av en billedskjerm eller ved hjelp av en direktekoblet skriver (en skriver som er under kontinuerlig styring av en datamaskin). Akkurat som hensikten med et menneskelig språk er at mennesker skal kunne kommunisere, er hensikten med et «datamaskinspråk» at mennesker skal kunne kommunisere med datamaskinen i den hensikt å løse problemer. En slik kommunisering med datamaskiner består i å fortelle den hva den skal gjøre, og den kommer med svar som viser hva som er blitt gjort.
Det midlet som brukes for å gi datamaskinen instruksjoner, kalles et maskinspråk eller et programmeringsspråk. For å kunne «snakke» med en datamaskin må du lære et av de mange programmeringsspråkene.
Programmeringsspråk
Ifølge min venn kalles det sett med instruksjoner som en datamaskin må ha for å kunne utføre en bestemt virksomhet, et program. Et moderne programmeringsspråk består av et sett med tegn og ord som ligner eller ligger nær opptil et menneskelig språk, men som likevel kan gi instruksjoner eller overføre data til datamaskinen.
Selv om programmeringsspråkenes historie er kort, bare omkring 30 år, finnes det allerede over 1000 programmeringsspråk, og det blir stadig utviklet flere. Grunnen til det er de mange bruksområder datamaskiner får, og at datateknologien stadig gjennomgår en utvikling.
De navnene som noen av disse språkene har fått, beskriver deres karakteristiske trekk. Eksempler på dette er FORTRAN (FORmula TRANslation, som betyr formularoversettelse), BASIC (Beginner’s All-purpose Symbolic Instruction Code, som betyr begynnerens symbolinstruksjonskode for alle formål) og COBOL (COmmon Business Oriented Language, som betyr alminnelig forretningsorientert språk). Hensikten med navnene på språkene kan også være ganske enkelt å identifisere dem, for eksempel PL/1 (Programming Language 1, som betyr programmeringsspråk 1) og APL (A Programming Language, som betyr et programmeringsspråk). Noen slike språk, for eksempel FORTRAN, er laget med tanke på å bruke matematiske uttrykk og egner seg best til vitenskapelige beregninger, mens COBOL bruker engelske forretningsuttrykk og er et forretningsorientert språk. PL/1 er et generelt språk som kan tilpasses de fleste felt. Det er dette språket som først og fremst blir brukt ved fremstilling av litteratur ved Selskapet Vakttårnets internasjonale administrasjonssenter i New York og ved Selskapets japanske avdelingskontor.
Akkurat som det i menneskelige språk er visse regler for grammatikk og tegnsetting, har hvert programmeringsspråk sine egne regler eller sin egen syntaks. Disse reglene må følges hvis maskinen skal forstå programmet.
Alle som har lært et fremmed språk, vet at det kan være katastrofalt bare å utelate én nødvendig lyd i et ord eller å uttale et ord galt. Dette gjelder også programmeringsspråk. For at jeg skulle forstå dette helt klart, ble jeg bedt om å tenke på noe som hadde skjedd for noen år siden, da romsonden Mariner i skulle skytes opp. Da var det én programmeringsfeil i det FORTRAN-programmet som ble benyttet under oppskytingen. Det var en bindestrek som manglet. Dette førte til at denne romsonden, som kostet flere millioner dollar, ikke ble brakt i bane rundt jorden! Bare én feil viste seg å bli veldig kostbar!
Et annet punkt som ble understreket for meg, gjaldt det en datamaskin kan gjøre, og det den ikke kan gjøre. Datamaskinen har ingen selvstendighet, det vil si, den kan ikke finne på noe av seg selv. Den kan ikke prestere noe uten at den er blitt matet med de nødvendige data eller opplysninger. Hvis for eksempel et program bad datamaskinen: GET FILE 1 (hent fil 1), ADD (adder) den til FILE 2 (fil 2) og deretter PRINT (skriv) det, men fil 1 aldri var blitt matet inn i datamaskinen, kunne den ikke fortsette. Følgelig ville du sannsynligvis få et slikt svar: FILE NOT IN LIB. Dette svaret ville gjøre deg oppmerksom på at datamaskinens LlBrary (lagerenhet) ikke inneholdt fil 1.a
Slike svar blir også matet inn på forhånd. Vi forstår altså at både spørsmålene og det som trengs for å besvare dem, alle de opplysninger som blir gitt og mottatt av dem som kommuniserer med datamaskiner, må tenkes ut av mennesker. Det minner meg om skuespillmanuskripter. De inneholder instrukser om når skuespillerne skal gå inn på scenen, og om når de skal trekke seg tilbake, samt andre opplysninger. Alt en datamaskin gjør, må være programmert på forhånd.
I denne forbindelse fikk jeg kjennskap til et annet særtrekk ved datamaskinspråkene. Uansett hvor dyktig du blir, trenger du alltid en «oversetter» for at datamaskinen skal forstå deg. Det kommer ikke av noen menneskelig mangel, men av maskinens begrensninger. Den kan bare forstå informasjoner i form av tallene 1 og 0. Derfor trenger du et oversetterprogram for å kunne uttrykke programmererens instruksjoner i den formen. Av den grunn finnes det egentlig to eksemplarer av det aktuelle programmet — det programmet som programmereren skriver, og som kalles et kildeprogram, og et oversatt eksemplar, som maskinen kan bruke. Deretter gjennomfører datamaskinen sine operasjoner ved å gjøre bruk av opplysninger som den kan forstå. Den kan svare brukeren ved hjelp av en dataskjerm eller en skriver ved å oversette svaret til tegn som et menneske kan lese.
Det programmereren først og fremst er interessert i, er kildespråket. Det er dette språket mennesker skriver programmer i, og de som skriver programmet, må kjenne språket godt for at programmet skal bli godt. Maskinspråkene er lagt inn i datamaskinen og er tilrettelagt av det firmaet som produserer den.
Hvem som kan lære
En viktig faktor som avgjør hvorvidt du kommer til å lære deg et programmeringsspråk og bli flink til å bruke det, er din interesse. De som er interessert i bruken av datamaskiner og beslektede fagområder, lærer lettere enn dem som ikke er interessert.
Alder blir ofte nevnt når det er snakk om hvem som kan lære. Det vanlige rådet er: Jo yngre du er, jo bedre er det. Grunnen til dette er at vår tenkemåte blir mer fastlåst etter hvert som vi blir eldre, og det blir vanskeligere å tilpasse den til noe nytt.
Tidligere trodde en at det var nødvendig å ha kjennskap til matematikk for å kunne lære seg programmering,men i dag vet en at det ikke er tilfelle, med mindre en skal programmere stoff av matematisk karakter. For noen år siden viste faktisk en konkurranse at en av de dyktigste programmererne som er ansatt hos IBM i Japan, var en som hadde utdannelse i humanistiske fag. Men for å bli flink til å programmere må en raskt kunne ordne opplysninger i logisk rekkefølge med høy grad av nøyaktighet.
Hvordan en kan lære
I dag finnes det mye som kan hjelpe deg til å lære de forskjellige programmeringsspråkene. Du kan derfor komme et godt stykke på vei ved å lære deg selv. For det første er språkene i seg selv i ferd med å bli mer og mer lik talte språk, og derfor er de lettere å lære og bruke. Dessuten har mange datamaskinselskaper utgitt hefter eller bøker som gir opplæring i grunnleggende programmeringsteknikker og -språk. Noen videregående skoler tilbyr også undervisning i programmering, og de fleste biblioteker har en god del bøker om dette emnet.
Det er imidlertid noen ulemper ved å lære fullstendig på egen hånd. Akkurat som når du skal lære å snakke et fremmed språk, er muligheten alltid til stede for at du kan tilegne deg dårlige vaner, som er vanskelige å korrigere senere. Det er også en god hjelp å ha noen å lære av om en skal bli flink. Noe annet en må ta i betraktning, er det forhold at datamaskinfirmaer stadig ajourfører sine teknikker og føyer nye til. Så bare det å lære et programmeringsspråk er ingen garanti for at det kan brukes som det er.
Er det bryet verdt?
Lønner det seg å lære å utføre en gitt oppgave grundig og så programmere maskinen til å utføre den oppgaven? Det viser seg at det gjør det. Riktignok tar det tid å planlegge og skrive et program. Men når programmet får maskinen til å funksjonere, kan den gjøre jobben langt raskere enn mennesker. Noen datamaskiner kan utføre over 200 000 000 grunnleggende operasjoner på ett sekund! Dessuten blir en jobb som utføres av en datamaskin, langt mer nøyaktig utført enn om den skulle gjøres av mange forskjellige mennesker. All den tid en sparer ved at en slipper å utføre den samme oppgaven om og om igjen, kan en bruke på nyttigere ting. Av disse grunnene har mange firmaer gått over til å bruke datamaskiner, og derved er det blitt mange oppgaver for programmerere.
Er du interessert i å føre en «dialog» med datamaskiner? Å lære språkene deres kan by på en interessant utfordring.
[Fotnote]
a En fil er en ordnet mengde av sammenhørende data.
[Bilde på side 19]
Hvor mange grader fahrenheit er 100 grader celsius?
1101 0100
Det er 212 grader fahrenheit