Dagens traditionella mjukvarustruktur är barock. Det behöver städas. Forskningsmässigt måste man rimligen slänga ut allting och börja om.

Det tycker Erik Sandewall, Sveriges första professor i datalogi och framstående forskare inom området artificiell intelligens (ai).

Hans senaste forskningsprojekt heter Leonardo – döpt efter renässansmannen Leonardo da Vinci. Enligt Erik Sandewall behövs det nämligen en renässans inom den programvaruteknik som hela it-branschen i dag bygger på.

– Om du har skrivit ett program och successivt gjort förändringar så bygger du förr eller senare in strukturer som med tiden blir onödiga och överflödiga. Till slut är det kanske bäst att börja om från grunden i stället för att fortsätta arbeta med den gamla mjukstrukturen. Man får då ett kompaktare och redigare program som är lättare att överskåda.

Fenomenet känns säkert igen. Idén bakom Leonardo-projektet fick Erik Sandewall då han insåg att ett liknande resonemang kunde tillämpas på den totala mängden programvara i en persondator.

– För mig var det en aha-upplevelse när jag förstod vad som behövde göras.

Radikal forskning
Den traditionella mjukvarustruktur vi har i persondatorer i dag bygger på idéer som är åtminstone 40 år gamla. Den forskning som Erik Sandewall bedriver inom Leonardoprojektet har visserligen sina rötter i samma period, men hans forskning är ändå radikal. Projektet befinner sig i gränslandet mellan allmän mjukvaruteknisk forskning och ai-forskning.

När Erik Sandwall studerade i Uppsala i början av 1960-talet fanns varken forskning om artificiell intelligens eller datalogi i Sverige. Inslag av programmering fanns dock i en kurs i numerisk analys som han läste på universitetet.

– Vi fick skriva och köra några enkla program. Oftast lämnade man in programmen över disk utan att själv komma i kontakt med maskinen. Men på fysikinstitutionen fanns en dator som man kunde få tillgång till själv, i alla fall på nätter och andra udda tider.

Studerade vid Stanfords
Erik Sandewall började intressera sig för ai-forskning och 1966, när han var 21 år gammal, skrev han en licentiatavhandling om hur kunskap kunde representeras i datorprogram som skulle förstå naturligt språk.

Året därefter forskade han vid Stanfords universitet i ett av de då få existerande ai-labben i världen. Han handleddes av John McCarthy, en av ai-forskningens pionjärer. Det var faktiskt McCarthy som myntade begreppet ”artificiell intelligens”.
– Han var en kreativ och inspirerande person men lät sina doktorander klara sig själva. Någon egentlig handledning var det väl inte tal om.

Vid återkomsten till Uppsala fick Erik Sandewall fortsätta utan handledning. Han hade ännu inte doktorsgrad men var redan Sveriges ledande ai-forskare. Han fick fria händer och en liten forskargrupp började växa upp kring honom. 1969 doktorerade Erik Sandewall och när han sex år senare fick Sveriges första professur i datalogi vid Linköpings universitet bestod gruppen av ett dussintal personer som flyttade med till Linköping.

Tanken med Leonardo är att bygga upp en ny gemensam kärna med begrepp som kan användas av alla program i en persondator. I den mjukvara som finns på en persondator återkommer många begrepp med små variationer i olika program. De kan exempelvis finnas både i operativsystemet och i olika programmeringsspråk och databaser. I Leonardo ska alla funktioner man behöver använda sig av finnas i grundsystemet – kärnan – istället för att varje program ska ha var sin.

Det språk man programmerar och utvecklar i är mycket enklare än dagens programspråk. Det kan sägas vara en mer uttrycksfull variant av xml.

I dag är plattformen för systemet klar. Nu ska ett antal applikationer tas fram. Syftet är framför allt att demonstrera att det verkligen går att skala upp systemet utan att man inför nya varianter av redan existerande begrepp. En applikation för dokumenthantering är redan fullt fungerande och ett dialogsystem för förståelse av naturligt språk är snart färdigställt.

Läcker som såll
Erik Sandewall tror att vinsterna för it-samhället vore stora om något som liknade Leonardosystemet spreds utanför forskar-världen.

– Programmen skulle bli säkrare, enklare och mer överblickbara. I dag är program och system mycket sårbara för exempelvis virus. De läcker som såll, delvis på grund av deras komplexitet. Och de är svåra att jobba med.

En annan vinst med Leonardo är enligt Erik Sandewall att kostnaderna för utvecklingsprojekt blir lägre. Och tack vare den integrerade och kompakta strukturen blir systemet också lättare att använda och lära sig.

Vilka konsekvenser skulle Leonardo få för användarna?
– Gränsdragningen mellan användare och programmerare skulle bli otydligare. Det är egentligen en fortsättning på en utveckling vi redan ser idag. En användare av ett kalkylprogram utför exempelvis en form av programmering när hon definierar egna fält.

Ett Leonardosystem kan enligt Erik Sandewall ses som en slags ”software individual” som kan modifiera sig själv. Dagens program är ofta till viss del självmodifierande. När ett program uppdateras laddar ett guideprogram hem en programfix som sedan styr uppdateringen av programmet. Uppdateringen är en slags självmodifikation.
– Leonardo har en mycket välutvecklad och kraftfull beskrivning av sin egen struktur. Denna uttrycksfullhet möjliggör en helt annan grad av självmodifikation. Man kan exempelvis utveckla systemet så att det lär och anpassar sig efter hur användare interagerar med systemet på ett sätt som är svårt i dagens programvarustruktur.

Stort intresse för Leonardo
Man kan fråga sig om det är realistiskt att en helt ny programvarustruktur av Leonardos slag skulle få något genomslag utanför forsknings- och utbildningsområdet.
– Man kan förstås diskutera, finns det realism i det här? Det kanske inte blir som jag tänkt mig när det ska ut och implementeras. Kanske inte, men i en akademisk miljö måste man i prova det och göra övningen, säger Erik Sandewall.

Många forskningsgrupper har visat intresse för Leonardo, men han har även fått en del kritik.

– Framför allt från dem som uteslutande jobbar med mjukvaruteknik. De tycker det här är lite för annorlunda.
Ett potentiellt problem med Leonardosystemet är att det i vissa fall kan bli svårare att modifiera och göra tillägg, just eftersom systemet är så kompakt och koncist. Och Erik medger att kritiken kan vara befogad. Han betonar dock att detta är en långsiktigt projekt, och att han tror att idéer från projektet även kan användas inom ramen för mer traditionella system.