Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 [email protected] Collaboration Jakob Carlström Programmering Slideset 12 Communications Research Group Agenda • Program. • Konstruktionselement i program • Exempelprogram. • Tolka program. - Kompilera. - Interpretera. - Virtuell maskin. [email protected] Communications Research Group 1 Program Program When you create a program, you write it using some kind of computer language. Your language statements are the source program. You then compile the source program (with a special program called a language compiler) and the result is called an object program (not to be confused with object-oriented programming). There are several synonyms for object program, including object module and compiled program. The object program contains the string of 0s and 1s called machine language that the logic processor works with. (källa www.whatis.com) ÉääÉê Program - Sekvens av instruktioner i ett programmeringsspråk, som på något sätt köras av en dator. Programmering - Att skriva program som löser en given uppgift. Ett bra program: - Löser den förelagda uppgiften. - Är effektivt. - Är lättläsligt för människor. [email protected] Communications Research Group Konstruktionselement i program • Enkel sats: op1 + op2; • Satsblock – ett antal enkla satser som hör ihop: op3 = op1 + op2; • Selektionssats – val mellan alternativa möjligheter: if op1 < op2 then { op3 = op1; else op3 = op2; }; • Slinga/loop – upprepa ett antal enkla satser ett bestämt antal gånger eller tills en selektionssats avbryter: while op1 < op2 do { op1 = op1 + 1; }; [email protected] Communications Research Group 2 Tolka program • Kompilering till maskinkod Ett annat program, kallat kompilator, översätter hela program från högnivåspråk till maskininstruktioner och systemanrop. Ex. på högnivåspråk som ofta kompileras: - Fortran - Pascal -C - C++ • Interpretering Ett annat program, kallat interpretator eller tolk, översätter instruktion för instruktion. Kan ”matas” med enskilda instruktioner eller hela program. Ex. på interpretering: - Kommandotolken i Unix. - Webbläsare som kan tolka JavaScript. - Perl-interpretator i webbserver [email protected] Communications Research Group Tolka program, forts. • Virtuell maskin. Kompilatorn översätter inte programmet till maskinkod, utan till kod för en virtuell maskin (VM), som i sig är ett program. Ett programmeringsspråk som normal körs på virtuell maskin är Java. Ex: Java-program C-program Kompilering Kompilering Java byte-kod Maskinkodsprogram Virtuell Java-maskin Fysisk maskin Fysisk maskin • Fördel med VM. VM för ett och samma språk kan konstrueras för olika kombinationer av hårdvara och OS (Mac+MacOS, PC+Linux, PC+Windows, Sun+Solaris ...). Ett kompilerat program kan då flyttas mellan olika miljöer utan omkompilering. Små Java-program (applets) kan t.ex. skickas med webbsidor och startas omedelbart på VM. • Nackdel med VM. Mindre effektiv exekvering än maskinkod. [email protected] Communications Research Group 3