1 Sammanfattning. Utökning av programmeringsspråk(plex-c) för telekommunikation

Storlek: px
Starta visningen från sidan:

Download "1 Sammanfattning. Utökning av programmeringsspråk(plex-c) för telekommunikation"

Transkript

1 2 Mälardalens högskola Rapport Institutionen för elektroteknik Examensarbete 10p, C-nivå Johnny Huss Handledare på Ericsson Utvecklings AB: Robert Lindh Handledare på Mälardalens högskola: Peter Funk Utökning av programmeringsspråk(plex-c) för telekommunikation 1 Sammanfattning I AXE-växlar(digitala telefonväxlar) utnyttjas ett programmeringsspråk som heter PLEX. Det utvecklades på sjuttiotalet parallellt med introduktionen av AXE för att bli skräddarsytt för AXE-systemet. Unikt för PLEX är att språket har en händelsestyrd arkitektur. PLEX används idag på Ericsson för att programmera telekommunikationsutrustning. Detta examensarbete är utfört åt Ericsson Utvecklings AB där instruktioner till telefonväxlar ges. Vid programmering i PLEX beskrivs regelbundet en återstartsprocedur efter avbrott som för olika block i programmet ser snarlik ut. Idag arbetar programmerare i allt större utsträckning med att applicera redan använd kod vid nykonstruktion. Ett naturligt val kan tyckas, men pga snarlikhet i återstartskod, och i viss mån slarv, skapar detta problem och är en orsak till svårfunna felkällor. Kompileringen kan många gånger gå bra men funktionen blir inte den avsedda. Detta examensarbete har gått ut på att skapa en preprocessor som tar hand om en nyskapad återstartssats i språket, och utifrån denna genererar kompilerbar funktionsduglig kod. Den nya återstartssatsen är enkraftigförenkling, som på ett för programmeraren beskrivande sätt anger syftet med inmatade återstartsdirektiv. Tanken är att programmeraren istället för att använda "gammal" kod nyttjar den nyskapade satsen vid inmatningen av återstartskoden. Figure from ToolMaker Manual[2] ENTER STTOR WITH TCASE, TPHASE, TTYPE, CKEY; IF TTYPE /= 1 THEN CASE TPHASE IS WHEN 1 DO GOTO ABC10; <restart statement> ELSE WHEN 1 DO CASE TPHASE IS WHEN 100 DO DOA1000; FI; STTORRY) TBLOCKINFO = JJ00 (-) JJ888; SEND STTORRY WITH CKEY, TBLOCKINFO, 5, 1, 100, 255; EXIT; ENGLISH VERSION In AXE exchanges(digital telephone exchanges) a language called PLEX-C is used. It was developed in the seventies parallel with the AXE system. PLEX-C is used by Ericsson for programming telecommunication equipment such as AXE. The language has a unique event-steered architecture, and starting up the switch after a break involves a restart phase, which often involves performing rather similar funcionalities in different parts of the program. Programmers of today tend to work with older applications of written code and use it all over again, "the copy-paste way". A natural choice it seems, but due to similarity in the code mistakes is done and problems occur when running the program. The compilepart many times runs as it s supposed to do, but the functionality doesn t always measure up to the demands. This degree project has been to build a preprocessor which takes care of a new statement for handling restart in the language, and depending on inputs in that new statement write compilable PLEX-C code. The new statement is describing the purpose with the input in an instructive way, and the intention with the new statement is to make the programmer use the new statement instead of "old" code in the programming process.

2 3 4 INNEHÅLLSFÖRTECKNING 1 Sammanfattning 2 2 Inledning Bakgrund Problem Exjobbsbeskrivning Hjälpmedel vid problemlösning 5 3 Restart statement Beskrivning av återstartskommandots olika delar <restart statement> <expression> <restart action> <case> <phases> <absolute phase> <symbolic phase> <statement block> <label> Regler för implementering av nya återstartskoden 8 4 Preprocessorn Handhavande preprocessorn Exempel på utseende före körning i preprocessorn Exempel på utseende efter körning i preprocessorn 11 5ToolMaker ScannerMaker ParserMaker Övergripande beskrivningsfil för ToolMaker Beskrivningsfil för felmeddelanden 15 6 Summering och slutsatser 15 Referenser 16 Bilagor 16 2 Inledning 2.1 Bakgrund Under sjuttiotalet då utvecklingen av Ericssons AXEväxlar(digitala telefonväxlar) pågick påbörjades samtidigt utvecklingen av ett programmeringsspråk som heter PLEX (Programming Languages for Exchanges). Unikt för PLEX är att språket har en händelsestyrd arkitektur [6] som är mycket väl lämpad för telekommunikation. Programmeringsspråket är alltså designat helt och hållet för telekommunikationssystem och skall också följa speciella tidskrav fastställda för den internationella telefonin. Mjukvara för telefontrafik måste exekvera så snabbt som möjligt. PLEX gör detmöjligt attiförvägutföra exekveringstidsestimering [7]. Till en början påverkades programstrukturen av Fortran och fick senare influenser också från Pascal och C. Därför är det relativt enkelt för ett tränat öga att känna igen sig i skriven kod. PLEX-versionen ämnad för centralprocessorn i AXE 10 kallas PLEX-C och används av Ericsson i alla deras telefonisystem. PLEX har under åren utvecklats och förenklats i olika stadier för att underlätta programmeringsarbetet. Preprocessorer som tar hand om nya beskrivande uttryck och satser i programmeringsspråk finns och används idag på Ericsson. Nämnas i sammanhanget bör HL-PLEX (High Level -PLEX) som idag förkompileras och genererar PLEX-C. Namnet hög nivå PLEX skall just symbolisera att det är etthögnivåspråk som på många sätt liknar C. Fördelen med detta är, förutom att programmeraren med koden på ett tydligare sätt kan beskriva avsikten med inmatad kod, också att dagens studenter får lära sig just detta sätt att programmera. Behovet av att förenkla kodningsproceduren är fortfarande stor och en obearbetad plan[5] som sammanställdes 1996 har fram till nu ej genomförts. Denna går utpå att införa nya satser i PLEX-C som skall köras i separata preprocessorer. Önskemål finnsatt de i ett senare skede skall infogas i PLEX-C permanent för attköras direkt i ordinarie kompilator. 2.2 Problem I PLEX-C skrivs idag av programmerarna en återstartssekvens som skall beskriva uppstarten vid ett avbrott. Denna sekvens är en viktig del i den skrivna koden som alla programmerare med ansvar för sitt eget block skall skriva.en sekvens för respektive block. Startsekvensen skall alltså ingå i alla block i PLEX-C och ser ut ungefär på samma sätt för alla block. Detta att utseendet är ungefär detsammautgör dock ett stort problem enär det i vissa fall är mycket små skillnader i koden som skall implementeras. Eftersom kod, helt enligt givna instruktioner, i väldigt stor utsträckning återanvänds (enligt klippa klistra -metoden) sparas tid och pengar. Men på grund av återstartsdirektivens små skillnader för de olika blocken och i viss mån slarv, skapar detta problem som måste minimeras. Trots att kompileringen går som den skall, fungerar det körbara programmet inte som tänkt. Därmed klarar inte den färdiga produkten att hålla sig inom ramarna för de högt uppsatta kravspecifikationer som gäller för den internationella telefonin.

3 Exjobbsbeskrivning Detta examensarbete har gått ut på att skapa en preprocessor, som tar hand om en nyskapad återstartssats i språket, kallad <restart statement>, och utifrån denna genererar kompilerbar funktionsduglig kod i PLEX-C. Den nya återstartssatsen är en kraftig förenkling, som på ett för programmeraren beskrivande sätt anger syftet med inmatade återstartsdirektiv. Tanken är att programmeraren istället för att använda "gammal" kod nyttjar den nyskapade satsen vid arbetet med återstartssektionen. Formuleringen av den nya satsen och användningen av preprocessorn som också upptäcker tveksamma instruktioner skall öka säkerheten och minska felprocenten. Slår detta väl ut, dvs drar programmerarna nytta av fördelarna med en preprocessor av den här typen kommer nya satser att införas framöver och utvärderas för att så småningom, om det finns tillräckligt med röster för, införas i språket PLEX-C och användas som vanlig kod. 2.4 Hjälpmedel vid problemlösning På Ericsson används verktyget ToolMaker(se vidare avsnitt 5) som är ett kompilatorgenereringsverktyg i UNIX. Verktyget används för att automatiskt generera de delar av en kompilator som läser in källkoden och analyserar dess syntax. Det fungerar ungefär på samma sätt som ett LEX- och YACC-samarbete. Till ToolMaker ger man en beskrivning på de strängar som skall accepteras, vilket görs med reguljära uttryck. För att ToolMaker skall kunna bygga upp en korrekt parser appliceras en grammatik som beskriver språkets syntax. Invävt i den grammatiken införs egna C-satser. Med hjälp av dessa byggs en logisk struktur upp som sedan används vid kodgenereringen. ToolMaker har använts vid implementeringen av preprocessorn för den nya återstartssatsen. 3 Restart statement PLEX-C är baserat på asynkron signalering mellan olika funktionsblock med övervakningsprocedurer inlagda. Vid en återstart följs en upplagd rutin(kan liknas vid en uppstart av dator) som består av ett antal olika s.k. absoluta faser. Från encentralenhet går det ut en förfrågan till aktiva funktionsblock gällande vilka återstartsfaser de vill medverka i. Funktionsblockens respektive svar lagras i den centrala enheten och därefter körs återstarten enligt fastlagd rutin. Den nya satsen kallad <restart statement> med tillhörande valmöjligheter kan nu läggas in i PLEX-C koden för att underlätta programmeringsarbetet vid kodning av återstartssekvensen för respektive funktionsblock. Satsen skall infogas i nuvarande PLEX-C för att behandlas i preprocessorn tillsammans med övrig kod. Vid inmatningar av programmeraren i <restart statement> -satsen som genererar tvetydig PLEX-C svarar preprocessorn med felmeddelanden. Detta är en kontrollfunktion som är inlagd i preprocessorn därför att preprocessorn kan godta syntaxen i inmatningen och lägga ut PLEX-C som är godkänd ur programmeringssynpunkt, men kodens betydelse kan t.ex. innebära att två olika fasalternativ skall väljas när endast ett alternativ är acceptabelt. Detta är något som programmerarna bör upptäcka av egen kraft. Dock hade Robert Lindh(handledaren på Ericsson Utvecklings AB) önskemål om extrakontroller när examensarbetet utfördes. PLEX-C kod fram till den nya satsen skall passera preprocessorn utan åtgärd och placeras ienmålfil, kallad PLEX. Då den nya satsen påträffas skall PLEX-C kod baserad på indata/inargument som tillhör den nya satsen genereras. Denna skall också placeras i målfilen PLEX. Slutresultatet blir vanlig kompilerbar PLEX-C kod. 3.1 Beskrivning av återstartskommandots olika delar (sefigur3.1påsida8) <restart statement> Betraktas som fullständigt då ett textstycke som inleds med "RESTART BLOCKINFO IS" och avslutas med ";" har lokaliserats. Att det är fullständigt innebär inte automatiskt att syntaxen däremellan är korrekt. Dock fortsätter preprocessorn sitt arbete och avslutar med ett meddelande som beskriver utgången av processen <expression> Detta finns definierat i PLEX-C. Kan vara t.ex. A + B / C * D. Uttrycket <expression> behövs för att det finns restriktioner i PLEX-C vid placering av vissa uttryck i språket. Det kommer att placeras av preprocessorn på förutbestämd plats vid TBLOCKINFO = (se avsnitt 4.3 "Exempel på utseende efter körning i preprocessorn" på sida 12, rad 31).

4 <restart action> Exempel på ett "restart action kommando": AT SMALL PHASE 49 DO ABC100 Innebörden av detta beskrivs ej närmare. Lägg märke till att endast VERSALER är tillåtna. Detta för att följa gällande regler för PLEX-C <case> Anger typ av återstart <phases> En eller flera faser skall anges. Absoluta- och symboliska faser är acceptabla <absolute phase> Etttalenligtnugällande regler: 1-50, 68-74, , , <symbolic phase> Ett annat sätt att uttrycka vissa absoluta faser. Symboliska faser skrivs enligt nedan: (SPH1:(1-3) - SPH6:(1-3)) SPH7:(1-12) Dessa motsvaras av absoluta faser => Symbolisk Absolut SPH1:1 20 SPH1:2 21 SPH1:3 22 SPH2: SPH7: Regler för implementering av nya återstartskoden Nedanstående syntaxregler för återstartskommandot <restart statement> (sefigur 3.1) är regler som måste följas för att preprocessorn skall kunna fungera. Det absolut enklaste fallet är denna inmatning $$START RESTART$$ RESTART BLOCKINFO IS <expression>; $$END RESTART$$ vilket kommer att! resultera i följande $$START RESTART$$ PLEX-C kod: RESTART BLOCKINFO IS <expression>; $$END RESTART$$! ENTER STTOR WITH CKEY; TBLOCKINFO = <expression>; SEND STTORRY WITH CKEY, TBLOCKINFO, 5, 255; EXIT; Den inmatade delen följer med in i det nya dokumentet bortkommenterad enligt PLEX- C standard (! ). Detta för attförenkla vidare förändringar som programmeraren vill göra. I de fall ändringar behövs skall de göras i den bortkommenterade delen och därefter skall preprocessorn köras igen. Den skapade koden fr.o.m. ENTER STTOR WITH t.o.m. EXIT klipps bort före ny preprocessorkörning. Detta förfarande är helt enligt önskemål frånbeställarenavpreprocessorför <restart statement> på Ericsson Utvecklings AB. <restart statement> ::= RESTART BLOCKINFO IS <expression> {<restart action>}* ; <restart action> ::= AT ((<case> <phases>) <phases> ) <action> <case> ::= SMALL LARGE RELOAD START LOCAL LARGE LOCAL START <phases> ::= PHASE <phase> PHASES <phase> {, <phase>}+ <phase> ::= <absolute phase> <symbolic phase> <statement block> <label> Dessa uttryck följer gällande regler i PLEX-C. <symbolic phase> ::= (SPH1:(1-3) - SPH6:(1-3)) SPH7:(1-12) <action> :== DO <statement block> GOTO <label> Figur 3.1: Syntaxregler för återstartssatsen, modifierad ToolMakernotation.

5 Preprocessorn 4.1 Handhavande preprocessorn PLEX-C kod inklusive nya satsen sparas i en fil(benämnd infil nedan) och används som indata till preprocessorn. Fyra stycken tillfälliga (s.k. T variabler) skall deklareras i filen. T variabler TCASE TPHASE TTYPE TBLOCKINFO 4.2 Exempel på utseende före körning i preprocessorn Iexempletpå dennasidaanvänds uttrycken DO ABC10, DO ABC11 osv. i återstartssatsen. Dessa är påhittade exempel på anrop till s.k. "statement blocks" som finns definierade i PLEX-C. De fungerar på ungefär samma sätt som funktioner i C som inte returnerar någon parameter(t.ex. void func(int a)), utan bara utför vad som finns beskrivet i funktionen. Vid användning av "GOTO <label>" uttrycket i den nya satsen ser preprocessorn till att en <label> STTORRY) läggs in i koden på lämpligt ställe i återstartssekvensen. Men återhoppet till denna STTORRY) - <label> tillses av programmeraren. Sekvensen $$START RESTART$$" => "$$END RESTART$$ är den delen som preprocessorn uppfattar som den nya satsen. Den omvandlas till kompilerbar PLEX-C medan all övrig kod flyter igenom opåverkad(se avsnitt 4.3 "Exempel på utseende efter körning i preprocessorn"). En målfil skall skapas, och läggas där utdata placeras vid körning. OBS! Namnet på målfilen måste vara PLEX. INDATA BÖRJAR HÄR De två nyckelorden/strängarna "$$START RESTART$$" "$$END RESTART$$" ///////////////////////////////////////////////// <= Detta skall symbolisera PLEX-C kod PLEX-C <= som preprocessorn skall ignorera. FOLLOWED BY THE <= NEW RESTART STATEMENT <= ///////////////////////////////////////////////// <= $$START RESTART$$ placeras före respektive efter det nya komandot <restart statement> (se exempel avsnitt 4.2, rad sid 10). RESTART BLOCKINFO IS JJ00 (-) JJ888 (*) GG99 (=) LL0 (+) OO99 <= PP10 => QQ11 AT PHASE 1 DO ABC10 AT PHASES 2,3 DO ABC11 I ett kommandofönster ges sedan kommandot pre "infil" som startar processen, varvid sedvanlig kompilerbar kod skapas. Den kompilerbara koden, tillsammans med den nya satsen bortkommenterad mha två stycken! -tecken, placeras automatiskt i måldokumentet PLEX (se exempel avsnitt 4.3, rad sid 11). Obs! Vid användning av ett eller flera GOTO <label> -statement, skapas en STTORRY) label av preprocessorn, som placeras före SEND STTORRY delen(se exempel avsnitt 4.3, rad 29 sid 12). AT SMALL PHASES SPH1:1, SPH2:1 GOTO XYZ100 AT RELOAD PHASE 10 DO ABC50 AT LOCAL LARGE PHASE 100 DO A1000 ; $$END RESTART$$ ////////////////////////// MORE PLEX-C ////////////////////////// INDATA SLUTAR HÄR

6 Exempel på utseende efter körning i preprocessorn Koden som är genererad nedan är producerad mha <restart statement> (se avsnitt 4.2). Av bekvämlighetsskäl placeras den nya satsen bortkommenterad mha! tecknet förattförenkla kodningsarbetet för programmeraren vid modifieringar i koden. ///////////////////////////////////////////////// PLEX-C FOLLOWED BY THE NEW RESTART STATEMENT /////////////////////////////////////////////////! $$START RESTART$$ UTDATA BÖRJAR HÄR <= Denna del symboliserar löpande <= PLEX-C kod i ursprungsdokumentet <= som flyter igenom opåverkad. RESTART BLOCKINFO IS JJ00 (-) JJ888 (*) GG99 (=) LL0 (+) OO99 <= PP10 => QQ11 AT PHASE 1 DO ABC10 AT PHASES 2,3 DO ABC11 WHEN 20 DO WHEN 0 DO GOTO XYZ100; WHEN 23 DO WHEN 0 DO GOTO XYZ100; WHEN 10 DO WHEN 2 DO DO ABC50; ELSE WHEN 1 DO CASE TPHASE IS WHEN 100 DO DO A1000; FI; STTORRY) TBLOCKINFO = JJ00 (-) JJ888 (*) GG99 (=) LL0 (+) OO99 <= PP10 => QQ11; AT SMALL PHASES SPH1:1, SPH2:1 GOTO XYZ100 AT RELOAD PHASE 10 DO ABC50 AT LOCAL LARGE PHASE 100 DO A1000 ; $$END RESTART$$! ENTER STTOR WITH TCASE, TPHASE, TTYPE, CKEY; IF TTYPE /= 1 THEN CASE TPHASE IS WHEN 1 DO DO ABC10; WHEN 2 DO DO ABC11; WHEN 3 DO DO ABC11; SEND STTORRY WITH CKEY, TBLOCKINFO, 5, 1, 2, 3, 10, 20, 23, 100, 255; EXIT; ////////////////////////// MORE PLEX-C ////////////////////////// UTDATA SLUTAR HÄR

7 ToolMaker Detta verktyg har använts vid implementeringen av preprocessorn. ToolMaker är ett kompilatorgenereringsverktyg i UNIX, som används för att automatiskt generera de delar av en kompilator som läser in källkoden och analyserar dess syntax. ToolMaker -verktyget kan liknas vid ett komplext LEX- och YACC-samarbete, med vars hjälp översättning från ett språk till ett annat är möjlig. Verktyget består av flera delar som tillsammans, med hjälp av definierade strängar, parsingteknik och C-programmering, kan skapa preprocessorer och kompilatorer av olika slag. Positionsbestämning av funna definierade tokens(ord/fraser/förutbestämd teckenföljd), deras interna koder och felmeddelanden utnyttjas gemensamt. Detta för att enkelt kunna lokalisera eventuella syntaxfel som har inmatats av programmeraren. Verktyget ToolMaker innehåller fyra beskrivningsfiler som konstruktörenavenpreprocessor har att laborera med(se avsnitt ). Dessa filer genererar "vanliga".hoch.c- filer som sedan kompileras på sedvanligt sätt för att bilda en exekverbar fil så att preprocessorn kan köras. 5.1 ScannerMaker ScannerMaker skapar en scanner baserad på val av uttryck/strängar som skall kännas igen.detkanvaraenföljd av versaler utan mellanslag t.ex. BEGIN som valts till ett nyckelord. Ett uttryck som inleds med ett antal radskift, mellanslag, tabbar följt av ordet ELSE kan också om så önskas definieras som en följd som skall kännas igen. 5.2 ParserMaker ParserMaker bygger upp en parser utifrån förutbestämda regler, mönster och direktiv (bestämda av konstruktören av parsern). Efter dessa konstruktörsdirektiv växer en logisk struktur fram. Denna logiska struktur kan t.ex. se ut som trädstrukturen(se figur 5.1). Strukturen i figur 5.1 skall symbolisera ett exekveringsberoende, vilket innebär att för att TOP momentet skall exekveras krävs att alla nedanför liggande nivåer har utförts. MOMENT A exekveras då dess underliggande nivåer, moment M1-M2 är klara. MOMENT B inväntar att alla underliggande moment är utförda, följaktligen M3-M11. Moment M3-M5 påbörjar sin verksamhet först då momenten nedanför, således M6-M11 är utförda osv. De olika delmomenten betraktade var för sig behöver inte innebära mer än att ett visst mönster i den inmatade texten har upptäckts och att parsern nu skall gå vidare i en viss bestämd riktning. Det kan även innebära att en länkad lista skall skapas, etc. Vid anrop till scannern(se avsnitt 5.1) efter funna strängar erhåller parsern en sträng i taget. Denna procedur ligger invävd i trädstrukturen(se figur 5.1), allt efter konstruktörens egna önskemål. Preprocessorns beskrivningsfil (pre.pmk) som genererar parsern för återstartssatsen kan ses i bilaga 3. Vid "nyckelordsträff" lagras den funna strängen undan i väntan på att parsern(se avsnitt 5.2) aktiveras och påbörjar sina anrop efter sparade strängar. Det finns även alternativ att utföra något med den funna strängen, t.ex. att kopiera den. I princip kan vad som helst utföras inom ramen för C-kod. De lokaliserade strängarna ligger dock kvar i väntan på att parsern(se avsnitt 5.2) efterfrågar dessa. Den skapade scannern ser också till att insamlingen av "tokens" som parsern är behjälpt av påbörjas vid rätt tillfälle. MOMENT A TOP MOMENT B Preprocessorns beskrivningsfil (pre.smk) som genererar scannern för återstartssatsen kan ses i bilaga 2. M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 Figur 5.1: Ett exempel på beroende trädstruktur.

8 Övergripande beskrivningsfil för ToolMaker Denna fil kan ses som ett övergripande huvud för alla delar av ToolMaker och är ett tillval som kan göras för att få en tydligare överblick. Namnet på preprocessorn bestäms här, likaså placeras här deklarationer på strukturer och variabler som skall användas i alla delar av ToolMaker. Här deklareras t.ex. positionsbestämning av funnen token/sträng för att förenkla felhanteringen. Referenser [1] Appel Andrew W., Princeton University, with Maia Ginsburg (1998), Modern Compiler Implementation in C, Cambridge University Press, The Edinburgh Building, Cambridge CB2 2RU, United Kingdom. Preprocessorns beskrivningsfil bilaga 4. (pre.tmk) till denna del för återstartssatsen kan ses i [2] Ericsson SoftLab AB (1994), ToolMaker Reference Manual Version 2.0, Ericsson SoftLab AB, Linköping, Sweden. 5.4 Beskrivningsfil för felmeddelanden I denna fil placeras de felmeddelanden som konstruktören vill att preprocessorn skall kunna redovisa. De tilldelas en egen kod och placeras i filen prelist.c vid genereringen av preprocessorn. Preprocessorns beskrivningsfil bilaga 4. 6 Summering och slutsatser (pre.lmk) till denna del för återstartssatsen kan ses i I detta examensarbete har en preprocessor för <restart statement> -satsen skapats som tillägg till programspråket PLEX-C. Preprocessorn översätter denna sats till PLEX-C kod. Implementeringen har testats och ger i samtliga provade testfall korrekt PLEX-C kod. Den nya satsen bör såvitt det går att bedöma i nuläget inte vara något problem att införliva i programmeringsarbetet på Ericsson. Med tanke på att HL-PLEX(se avsnitt 2.1 Bakgrund sid 4), liksom <restart statement> -satsen kom till bl.a. för att det skulle vara lättare att förstå intentionen med skriven kod så kan förväntas att användningen av den nya återstartssatsen relativt enkelt går att assimilera i programmeringsprocesen. Eftersom den nya satsen ger en klar bild av syftet med skrivna rader bör användningen av satsen komma igång förhållandevis snabbt. Antalet kodrader kommer dessutom att minska, vilket gör detlätt att överblicka. Eftersom strävan med skriven plan[5]är att få ned felfrekvensen i programmeringsarbetet så är det naturligtvis värdefullt om utfallet blir det beräknade [5] med den nya satsen. Det ligger då nära till hands att andra föreslagna satser i [5] realiseras och läggs in i PLEX-C. Preprocessorer för dessa satser bör då relativt snabbt kunna tas fram mha ToolMaker som är ett kompilatorgenereringsverktyg i UNIX. Verktyget finns tillgängligt på Ericsson och användes vid framtagandet av preprocessorn för återstartssatsen i detta examensarbete. Vid arbetet med kommande satser bör samma tankebanor som utnyttjats vid detta examensarbete lätt kunna tas till vara. [3] Ericsson Telecom AB, Competence Development Services, MV/ETX/TK/XD (1996), PLEX-C1, Ericsson Telecom AB, Stockholm, Sweden. [4] Pittman Thomas, Peters James, University of Arkansas (1992), The Art of Compiler Design Theory and Practice, Prentice-Hall, inc. A Simon & Schuster Company, Englewood Cliffs, New Jersey 07632, USA. [5] Rindborg Tom (1996), Implementation Sketch UAB/B/R-96:107 Uen, Ericsson Utvecklings AB, Stockholm, Sweden. [6] Arnström Andreas, Grosz Camilla, Guillemot Andreas (1999), GRETA: a toolconcept for validation and verification of signal based systems (e.g. written in PLEX), Ericsson Utvecklings AB & Mälardalens Högskola, Sweden. [7] Axelsson Jouni, Eriksson Johan, Exekveringstidsanalys för mjukt realtidssystem(telekommunikationssystem) från grafanalys(kompilatordata) (2000), Ericsson Utvecklings AB & Mälardalens Högskola, Sweden. Bilagor Huvudprogrammet för preprocessorn (pre.c). Bilaga 1 Beskrivningsfil för ToolMaker(pre.smk), Bilaga 2 som genererar scannern. Beskrivningsfil för ToolMaker(pre.pmk), Bilaga 3 som genererar parsern. Beskrivningsfiler för ToolMaker (pre.tmk, pre.lmk). Bilaga 4

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP MÄLARDALENS HÖGSKOLA CD5560 Formella språk, automater och beräkningsteori Användarmanual för simulatorn JFLAP Innehållsförteckning Att komma igång med JFLAP... 3 Att köra en sträng... 5 Att köra flera

Läs mer

Software Technology. Josef Svenningsson

Software Technology. Josef Svenningsson Software Technology Josef Svenningsson Software Technology Software Technology Området Software Technology handlar i mångt och mycket om följande frågeställning: Hur designar man programmeringsspråk för

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Introduktion till programmering, hösten 2011

Introduktion till programmering, hösten 2011 Föreläsning 1 Programmering är ett hantverk. Det betyder att man inte kan läsa sig till den förmågan, man måste träna och man tränar genom att skriva mer och mer avancerade program. Programmering förutsätter

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Collaborative Product Development:

Collaborative Product Development: Collaborative Product Development: a Purchasing Strategy for Small Industrialized House-building Companies Opponent: Erik Sandberg, LiU Institutionen för ekonomisk och industriell utveckling Vad är egentligen

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

Föreläsning 3. Programmering, C och programmeringsmiljö

Föreläsning 3. Programmering, C och programmeringsmiljö Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator

Läs mer

kind spelling Scanning

kind spelling Scanning sats terminal Kompilatorteknik 2015 källprogram! Exempel program let var v : integer; const t ~ 3 in v := v + t kind spelling Scanning LET let föreläsningsfilmer Scannerns eller den lexikala analysatorns

Läs mer

Datorlaboration 0, Programmering i C++ (EDA623)

Datorlaboration 0, Programmering i C++ (EDA623) LUNDS TEKNISKA HÖGSKOLA Programmering i C++ Institutionen för datavetenskap HT 2013 Datorlaboration 0, Programmering i C++ (EDA623) Under den inledande datorlaborationen får du träna på de grundläggande

Läs mer

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

Läs mer

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition): Översikt Motivering Syntax och semantik Imperativa språkets byggstenar och Python Datatyper Tilldelning och uttryck Kontrollstrukturer (på satsnivå) Subprogram Relaterade avsnitt: PL 3.1-3.2, 5.1-5.3,

Läs mer

Installation av F13 Bråvalla

Installation av F13 Bråvalla Website: http://www.rbdesign.se Installation av F13 Bråvalla RBDESIGN FREEWARE - ESCK Norrköping-Bråvalla 1. Ladda ner och packa upp filerna i en mapp som du har skapat på ett lättöverskådligt ställe utanför

Läs mer

VÄGLEDNING Hur man fyller i Excel-bladet

VÄGLEDNING Hur man fyller i Excel-bladet Europeiska kommissionen GENERALDIREKTORAT GD MILJÖ GD KLIMATPOLITIK VÄGLEDNING Hur man fyller i Excel-bladet Europeiska kommissionen, B-1049 Bryssel Belgien, tfn: 32 22991111 1 INNEHÅLLSFÖRTECKNING 1 INNEHÅLLSFÖRTECKNING...

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Introduktion C-programmering

Introduktion C-programmering Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder

Läs mer

Användar- och systemdokumentation

Användar- och systemdokumentation Användar- och systemdokumentation Linköpings universitet Examinator:, IDA marme647@student.liu.se Utskriftsdatum: Innehållsförteckning Inledning... 3 Användarhandledning... 4 Systemkrav och installation...4

Läs mer

Grafisk produktion och tryckkvalitet TNM015

Grafisk produktion och tryckkvalitet TNM015 Grafisk produktion och tryckkvalitet TNM015 Laboration: Processautomation och kvalitetssäkring vt 2005 Claes Buckwalter clabu@itn.liu.se 1 Introduktion Den här laborationen handlar om processautomation

Läs mer

Objektorienterad programmering Föreläsning 2

Objektorienterad programmering Föreläsning 2 Objektorienterad programmering Föreläsning 2 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Inläsning av data via dialogrutor Repetitioner (While-satsen och For-satsen) Nästlade

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR Kontrollera vilka kurser du vill söka under utbytet. Fyll i Basis for nomination for exchange studies i samråd med din lärare. För att läraren ska kunna göra en korrekt

Läs mer

Dokumentation av rapportmall

Dokumentation av rapportmall Dokumentation av rapportmall Utgivningsår: 2003 Författare: Eva Erbenius Samhällsmedicin Centrum för Tillämpad Näringslära Box 175 33 Wollmar Yxkullsgatan 19 118 91 Stockholm Innehåll Inledning... 3 Rapportens

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

TDP002 Imperativ programmering

TDP002 Imperativ programmering TDP002 Imperativ programmering Introduktion till kursen och python Eric Elfving Institutionen för datavetenskap (IDA) Översikt Programmering En introduktion Python Köra och skriva program Python grunderna

Läs mer

[HUR DU ANVÄNDER PAPP] Papp är det program som vi nyttjar för att lotta turneringar och se resultat.

[HUR DU ANVÄNDER PAPP] Papp är det program som vi nyttjar för att lotta turneringar och se resultat. PAPP Papp är det program som vi nyttjar för att lotta turneringar och se resultat. Förberedelser inför en turnering. Ladda ner papp för windows, spara zipfilen på lämpligt ställe på din dator och lägg

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Inledande programmering med C# (1DV402) Introduktion till C#

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

Föreläsning 13 Testning och strängar

Föreläsning 13 Testning och strängar Föreläsning 13 Testning och strängar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 13.10.2011 Testning Tips för systematisk testning

Läs mer

Programmering för alla!

Programmering för alla! Programmering för alla! Inspirationsseminarium för lärare i grundskola och gymnasium Björn Regnell Professor Datavetenskap, LTH, Lunds universitet lth.se/programmera Video http://www.svt.se/nyheter/sverige/krav-pa-att-elever-lar-sig-programmera

Läs mer

Föreläsning 1: Intro till kursen och programmering

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

Innehåll i detta dokument

Innehåll i detta dokument Läs igenom hela dokumentet innan du startar. Kopiera över allt på CD-skivan till din hårddisk. Din dator kommer behöva startas om en gång vid installationen av CodeSys. Du måste ha rättigheter att installera

Läs mer

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014 Kompilatorteknik Görel Hedin Datavetenskap Lunds Tekniska Högskola Temaföreläsning, Datorer i system, 2014 En typisk kompilator programkod while (a >= 0) { } kompilator maskinkod 0024 6050 2530 0000 0000

Läs mer

IE1204/IE1205 Digital Design

IE1204/IE1205 Digital Design TENTAMEN IE1204/IE1205 Digital Design 2012-12-13, 09.00-13.00 Inga hjälpmedel är tillåtna! Hjälpmedel Tentamen består av tre delar med sammanlagd tolv uppgifter, och totalt 30 poäng. Del A1 (Analys) innehåller

Läs mer

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408.

Programmering B PHP. Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408. Programmering B PHP DTR1208 - Programmering B 50 poäng Specialiseringen mot PHP medför att kursens kod i betygshanteringen heter PPHP1408. Mål Mål för kursen (Skolverket) Kursen skall ge fördjupade teoretiska

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Syfte Laboration 1. Objektorienterad programmering, Z1 Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i

Läs mer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio Ditt första C#-program med Visual Studio Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så

Läs mer

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

Administrivia. hh.se/db2004. 1 Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg) Programmering hh.se/db2004 Föreläsning 1 Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Välkomna till en kurs i programmering! Att programmera är att få datorn att bete sig på

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

BILAGA E till Programvaruprojekt ÅTERSTÅENDE PROBLEM MultiPC v1.0. Innehållsförteckning

BILAGA E till Programvaruprojekt ÅTERSTÅENDE PROBLEM MultiPC v1.0. Innehållsförteckning ÅTERSTÅENDE PROBLEM MultiPC v1.0 Rev 7 1(7) BILAGA E till Programvaruprojekt ÅTERSTÅENDE PROBLEM MultiPC v1.0 Här listas problem som kan behöva hanteras i kommande inkrement. De prioriteras alltså ner

Läs mer

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. .0.0 DIAGNOSTISKT PROV Tid Klockan 09.00-2.00 Hjälpmedel Inga Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas. Rättning Tentamen omfattar 6 poäng Denna tentamen

Läs mer

Lathund. Pacific C för MS-DOS

Lathund. Pacific C för MS-DOS Lathund Pacific C för MS-DOS Revision 2 2003-08-28 Anders Arvidsson Karl-Johan Krantz Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 PACIFIC

Läs mer

Programmering för alla!

Programmering för alla! Programmering för alla! del 1 Lärarlyftet Teknik 7-9, 2014-09-01 Björn Regnell Professor Datavetenskap, LTH, Lunds universitet lth.se/programmera Agenda 09:00-10:00 Introduktion; kursens upplägg Varför

Läs mer

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: Bilaga C Eclipse 1 Inledning Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på: www.eclipse.org help.eclipse.org www.eclipse.org/downloads/

Läs mer

LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015

LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015 LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015 Testning med JUnit 1 Inledning JUnit är ett ramverk för enhetstestning av Javakod. Det är utvecklat

Läs mer

Metoder och verktyg för funktionssäkerhet

Metoder och verktyg för funktionssäkerhet Metoder och verktyg för funktionssäkerhet Projektstart 1. Hantera kraven En bra process är grunden för att hantera kraven i ett säkerhetsprojekt. Det krävs att du har en tydlig spårbarhet mellan krav och

Läs mer

Application for exemption - Ansökan om dispens

Application for exemption - Ansökan om dispens Ankomststämpel BYNs kansli Application for exemption - Ansökan om dispens Important information For the application to be handled are required: 1. The operator of a machine or crane is predestinated to

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet. Uppgift 1 Ett programmeringsparadigm är i grund och botten ett sätt att arbeta, ett sätt att möta problem. Det finns flera olika paradigm där varje paradigm har sina egna styrkor och svagheter. Det som

Läs mer

Lathund för publicering i KI Commons wikitjänst

Lathund för publicering i KI Commons wikitjänst 1 Lathund för publicering i KI Commons wikitjänst (juni 2013) Skapa ett konto 1. Gå till webbplatsen: http://www.kicommons.wikispaces.net/ och klicka på Join längst upp till höger i webbläsarfönstret.

Läs mer

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false.

Laboration 2. returnerar true om det är omöjligt för roboten att göra move() utan att. exekveringsfel erhålls, annars returnera false. Laboration 2. I denna laboration skall ni programmera en robot som modelleras av den givna klassen Robot. En robot vistas i en enkel värld, som modelleras av klassen RobotWorld. Världen består av ett rutmönster

Läs mer

PROV. 12 Egenskaper (provavsnitt)

PROV. 12 Egenskaper (provavsnitt) 12 Egenskaper (provavsnitt) 12.1 Egenskaper 12.2 Deklaration av egenskaper 12.3 Åtkomsttjänster för egenskaper 12.4 Åtkomsttjänster med genererade instansvariabler 12.5 Åtkomsttjänster med egna instansvariabelnamn

Läs mer

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM Innehåll Designflöde Översikt av integrerade kretsar Motivation Hardware Description Language CAD-verktyg 1 DESIGNFLÖDE FÖR DIGITALA

Läs mer

Erlang. Programspråk 5DV086. Sebastian Backstad

Erlang. Programspråk 5DV086. Sebastian Backstad Erlang Programspråk 5DV086 Sebastian Backstad Love Engman Joel Viklund Christer Jakobsson Petter Johansson c11sbd c11len c11jvd dv12cjn oi12pjn \_(ツ)_/ 1 Innehållsförteckning Inledning 3 Om Erlang 4 Syntax

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Mathematical Cryptology (6hp)

Mathematical Cryptology (6hp) Time to sign up for the continuation course Mathematical Cryptology (6hp) 12 lectures (2 hours) + 2 small projects Exercises are done on your own and discussed in class (6*2 hours). Contents: Elliptic

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

Kapitel 16: Programmering

Kapitel 16: Programmering Kapitel 16: mering Innehåll Komma igång: Volymen av en cylinder...2 Skapa och ta bort program...4 Skriva instruktioner och köra program...5 Redigera program...6 Kopiera och byta namn på program...7 PRGM

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Administrivia Programmering Grunderna i C Kortspel. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes.

Administrivia Programmering Grunderna i C Kortspel. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes. Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 12 Utkast 1 Administrivia 2 Programmering 3 Grunderna i C 4 Kortspel Kurs resurser www.hh.se/staff/vero/programmering

Läs mer

Boiler with heatpump / Värmepumpsberedare

Boiler with heatpump / Värmepumpsberedare Boiler with heatpump / Värmepumpsberedare QUICK START GUIDE / SNABBSTART GUIDE More information and instruction videos on our homepage www.indol.se Mer information och instruktionsvideos på vår hemsida

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Erik Forslin ÓÒ º Ø º Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Pragmatisk programmering. Cyberrymden 2001-10-03. Marcus Rejås Pragmatisk programmering,16 december 2002 1(29)

Pragmatisk programmering. Cyberrymden 2001-10-03. Marcus Rejås <marcus@rejas.se> Pragmatisk programmering,16 december 2002 1(29) Pragmatisk programmering,16 december 2002 1(29) Pragmatisk programmering Cyberrymden 2001-10-03 Marcus Rejås $Id: slides.tex,v 1.14 2002/12/16 14:52:59 rejas Exp $ Metainformation Denna

Läs mer

ZoomText 9.1. Tillägg till Användarmanual. Ai Squared

ZoomText 9.1. Tillägg till Användarmanual. Ai Squared ZoomText 9.1 Tillägg till Användarmanual Ai Squared Copyrights ZoomText Magnifier Copyright 2008, Algorithmic Implementations, Inc. All Rights Reserved. ZoomText Magnifier/Reader Copyright 2008, Algorithmic

Läs mer

PROV. 10 Uppräknade datatyper

PROV. 10 Uppräknade datatyper 10 10.1 10.2 Definition 10.3 Användning och regler 10.4 switch-satsen 10.5 Iteration över samtliga värden 10.6 Instansvariabler och instanstjänster 10.7 Värdespecifika implementationer 10.1 Hur ser vi

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination

Läs mer

- A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform

- A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform Datavetenskap Opponent(er): Jhonny Carvajal Johan Bjärneryd Respondent(er): Fredrik Häggbom Erik Olsson Haglund Scrumptious - A Scrum Planning Tool Case Study to Evaluate the The Rich AJAX Platform Oppositionsrapport,

Läs mer

Programmeringteknik. Planering 2014-05-12 MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Programmeringteknik. Planering 2014-05-12 MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen MÅL Programmeringteknik Webbdelen Efter webbmomentet ska du: kunna använda ett tiotal kommandon i: HTML (göra webbsidor) CSS (webbsidans utseende) Javascript (programmering - klienten) PHP (programmering

Läs mer

Att öva på och förstå ett program med flera samverkande klasser.

Att öva på och förstå ett program med flera samverkande klasser. Inlämningsuppgift 4 klassen Kund (Customer) Att öva på och förstå ett program med flera samverkande klasser. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika

Läs mer

Vår väg till Godkänt, och sedan vidare...

Vår väg till Godkänt, och sedan vidare... Grunder i programmering Vår väg till Godkänt, och sedan vidare... Ett väl utfört arbete ger en inre tillfredsställelse, och är den grund varpå samhället vilar. Karl-Bertil Jonsson ii Grunder i programmering

Läs mer

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC lektion 1 PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC VB är ett applikationsutvecklingsverktyg med programmeringsspråket är basic, gränssnittet är grafiskt och man arbetar hela tiden

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Kom igång med Stata. Introduktion

Kom igång med Stata. Introduktion Kom igång med Stata Introduktion Stata är det vanligaste statistikprogrammet bland de på institutionen som bedriver mycket kvantitativ forskning. Det är relativt enkelt att lära sig, samtidigt som det

Läs mer

Laboration 10 - Eclipse

Laboration 10 - Eclipse Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR

SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR SKAPA DET FÖRSTA PROJEKTET I mikrobasic PRO for AVR 2 Projekt mikrobasic PRO for AVR organiserar applikationer som projekt vilka består av en enda projektfil (med filändelsen.mbpav) och en eller flera

Läs mer

ALLMÄNT 2. Introduktion 2. Åtgärder vid driftsättning 2. Förklaring av termer och begrepp 3. Kommandosyntax 3 HANDHAVANDE 4. Kommandon 4.

ALLMÄNT 2. Introduktion 2. Åtgärder vid driftsättning 2. Förklaring av termer och begrepp 3. Kommandosyntax 3 HANDHAVANDE 4. Kommandon 4. INNEHÅLL ALLMÄNT 2 Introduktion 2 Åtgärder vid driftsättning 2 Förklaring av termer och begrepp 3 Kommandosyntax 3 HANDHAVANDE 4 Kommandon 4 System 5 Aktiviteter 8 Kommandolista 9 TEKNISKA SPECIFIKATIONER

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel

Läs mer

Elias Castegren. (Version 1, 2012)

Elias Castegren. (Version 1, 2012) Liten Emacs-referens Elias Castegren (Version 1, 2012) Det här är en kort genomgång av några väldigt grundläggande kommandon i Emacs. Dokumentet är inte utförligt eller ens särskilt pedagogiskt, utan jag

Läs mer

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager

ANVÄNDAR MANUAL. SESAM 800 RX MC Manager ANVÄNDAR MANUAL SESAM 800 RX MC Manager Åkerströms Björbo AB Box 7, SE-780 45 Gagnef, Sweden street Björbovägen 143 SE-785 45 Björbo, Sweden Phone +46 241 250 00 Fax +46 241 232 99 E-mail sales@akerstroms.com

Läs mer

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Föreläsning 1 Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program Deitel: 1.1-1.9, 2.1-2.3 DA101A Programmering Programmering, DA101A Kursansvarig:

Läs mer

Daniel Clarhed 2006-06-22

Daniel Clarhed 2006-06-22 Avdelningen för Byggnadsmekanik Daniel Clarhed PM för Byggnadsmekaniks nya hemsida 2006-06-22 Byggnadsmekaniks nya hemsida I juli kommer Byggnadsmekanik få en ny hemsida, stöpt i det LTH-gemensamma utseendet.

Läs mer

Stackning av bilder JAN NILSSON

Stackning av bilder JAN NILSSON Svensk Mykologisk Tidskrift 30 (3): 51 55, 2009 Stackning av bilder TEKNIK JAN NILSSON Abstract Image stacking. A short presentation of the software "CombineZP" which is designed to process stacks of digital

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5 Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor 1 Laboration 5 - Introduktion Syfte: Öva på självständig

Läs mer

Planering Programmering grundkurs HI1024 HT 2015 - data

Planering Programmering grundkurs HI1024 HT 2015 - data Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Continuous Integration med Jenkins. Linus Tolke Enea Experts

Continuous Integration med Jenkins. Linus Tolke Enea Experts Continuous Integration med Jenkins Linus Tolke Enea Experts Föredraget Grunderna i mjukvaru-cm Trender inom mjukvaruutveckling Continuous Integration Vad är Jenkins Demo Jenkins i ArgoUML-projektet Problem

Läs mer

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09

EXTERNAL ASSESSMENT SAMPLE TASKS SWEDISH BREAKTHROUGH LSPSWEB/0Y09 EXTENAL ASSESSENT SAPLE TASKS SWEDISH BEAKTHOUGH LSPSWEB/0Y09 Asset Languages External Assessment Sample Tasks Breakthrough Stage Listening and eading Swedish Contents Page Introduction 2 Listening Sample

Läs mer

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)

Ansvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen) MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga

Läs mer

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen. TT Kapitel 3. Husdjur & Fisk Javaklasser Translation by Leif Lourié Java program består av klasser som beskriver saker (objekt) som finns på riktigt. Även om det finns många olika sätt att skriva program

Läs mer

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB

Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Komma igång med Compact API Hur APIet fungerar Visma Compacts API läser och skriver direkt till databasen via ett antal färdiga metoder som

Läs mer

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make

Kapitel 12. Mer om program. 12.1 Att rapportera buggar och problem. 12.2 make Kapitel 12 Mer om program 12.1 Att rapportera buggar och problem När man rapporterar buggar eller andra problem i program så är det några saker att tänka på för att ens rapport ska vara användbar för den

Läs mer