Det Sista ProgrammetTM

December 13th, 2009 mejf

Inte helt sällan inom mitt område av studier är det problem man ska lösa. Dessutom problem kan ofta delas in i grupper av problem där de olika problemen har olika metoder för hur de ska lösas. Ibland kan en grupp problem ha som lösning att man omformulerar problemet och joxar runt det lite grand så att det ser ut som en annan grupp av problem som går att lösa mer direkt.

För någon vecka kom jag att tänka på det här med mjukvara. Hur många olika mjukvaror har det utvecklats under historien? Även om vi inte räknar uppdateringar och mindre utökningar som nya program så skulle jag tro att kvoten (antal utvecklade program) / (antal olika, av dess program, lösta problem) är ganska hög. Alltså att det finns väldigt många program/system som löser exakt samma grundläggande problem. Om man bara kunde identifiera dessa distinkta problem-typer borde man väl i teorin kunna skriva Det Sista ProgrammetTM. Alltså skriva det sista programmet som någonsin behövde skrivas. Programmet som kan lösa alla tänkbara problem som någonsin skulle kunna tänkas behöva lösas av en dator. Man kanske skulle få jobba med att anpassa användargränssnitt och annan kosmetik efter rådande normer och mode. Men i övrigt skulle världens problemlösning vara tryggad.

Nackdelen med den här tanken skulle jag väl kunna tänka mig är att mängden problem som kan behöva lösas är så astronomiskt stort att det… Jag behöver nog inte skriva mer nu.

Posted in Funderat, Programmering | Tags: , , , | No Comments »

Optimerande Kompilator

December 12th, 2009 mejf

Jag har nu avslutat, lämnat in och blivit nöjd med det roligaste projektet på LTH (hittills). Kursen heter Optimerande Kompilatorer och hålls av kompilatorernas Yoda Jonas Skeppstedt.

Projektet gick ut på att vi fick en simpel kompilator för en förenklad variant av C med inbyggd simulator som vi skulle utöka med optimeringar. Målet var att en bifogad benchmark skulle köras på så få klockcykler som möjligt.

Inte nog med att jag och Jesper vann, vi spöade även alla de tidigare åren med ganska god marginal. Orginalkompilatorn körde benchmarken på ~180.000 klockcykler. Tidigare rekordet från 2007 var på 1047 klockcykler. Vår kompilator fick ner det till 950 klockcykler. (Enda besvikelsen var väl att vi inte lyckades slå dem med 100, vilket var målsättningen mot slutet.)

De kommentarer vi fått efter att vårt resultat blev (ehrm) offentligt har verkligen varit självförtroendehöjande. Jonas själv trodde inte det var möjligt att få ner siffran under 1000. Minst sagt en boost!

Posted in Programmering | Tags: , , , | 1 Comment »