21. december 2005 - 13:13Der er
31 kommentarer og 1 løsning
hjælp arne.v 2
vi har fået en opgave i maskinarkitektur, da vi har en røvdårlig lærer er der ingen der fatter et pluk af hvordan vi skal løse den..
Antag at I har skrevet en compiler for MinimalParva.atg, dvs. en oversætter der kan oversætte en delmængde af Parva til PVM assembler. MinimalParva skal nu udvides med én enkelt kontrolsætning, det skal nu være muligt at skrive en while-sætning. Tilføj de nødvendige produktionsregler til MinimalParve.atg og tilføj de tilsvarende metoder i compileren.
Et program der skulle oversættes og simuleres kunne være
void fun () { int moreFun = 0; while (number <= 5) { moreFun = moreFun + 1; write(number); } write(“ The end”); }
MinimalParva.atg:
COMPILER MinimalParva /*
A minimal fragment of Parva sufficient for writing programs like this:
buzzzz du er velkommen til at kigge her http://eksperten.dk/spm/671442 arne.v er dygtig til alt programmering og der må ikke gives point for spm rettet specifikt mod 1 person.. hvis du ikke har noget at tilføje der kunne tyde på bare et minimum af intelligens så synes jeg du skulle lade helt være...
soreno - det ligner noget der kan bruges, så mangler der bare at tilføje metoderne i compileren.. hvis du kigger på ovenstående link er det som et alm spm hvor du også kan få point for dit arbejde.. på forhånd tak
Jamen glædelig jul til dig, forkert ben ud af sengen siden jeg ligepludselig er dum?
Bare første spm jeg ser her på eksperten som er rettet direkte mod 1 person, men siden du er så klog hvorfor kan du så ikke selv finde ud af det?
Du kunne jo også have henvist til det, så man måske var klar over hvad der skete, og hvorfor du havde givet et sådan title ... at det så også er en forkert kategori du har oprettet det i.... Arne_v læser da alle kattegorier med programmering..... :-) ( næsten da )
soreno > jeg har lagt hele opgaven ind som vi fik den, og jeg skal være ærlig og fortælle dig at det er minimalt hvad vi fatter af opgaven, vi har som sagt haft en lærer der taler swahili og skriver sandskrit så vi er helt på bar bund..men produktionsreglen ser rigtig nok ud
faktisk ikke.. vi har haft om LL1 grammatikker og parse træer.. som sagt lærer = bonghat.. 2 uger før projekt kom han ind i klassen med en opgave.. skriv en compiler, der var ingen der løste opgaven.. vi har klaget til læren selv, kontakt lærer og studievejleder uden resultat og nu står vi her. vi har ingen hjælpe værktøjer fået og vi har haft faget i 4 måneder i alt med 5 timer i ugen.. så som du nok kan forstå er vi shit out of luck :-(
hvorfor pokker laver i compiler i maskin arkitektur - umiddelbart ville jg tro at maskin arkitektur var teori + evt. lidt assembler og compilere var et selvstændigt fag
det kan godt være at jeg er dygtig til mange områder indenfor programmering, men når vi snakker meget datalogiske emner som compiler teknik, så kan jeg godt mærke at jeg er uddannet national økonom og ikke datalog
første spørgsmål: hvilket værktøj bruger i til at producere noget output udfra en .atg fil ?
* "Statement" udviddes med whileStatement - denne tilføjelsegør det muligt at skrive while-sætninger inde i en "block": Statement = VarDeclarations | Assignment | WriteStatement | WhileStatement .
* definition af whilestatement - specifik definition af "while"'s opbygning, bemærk at dette giver mulighed for nested while f.eks. blabla.: WhileStatement = "while" "(" CompExpression ")" Block.
ok det var tilsyneladende del 1 af op gaven... anden del er : "...og tilføj de tilsvarende metoder i compileren" - det har jeg p.t. ikke lige tid til at sætte mig ind i :D der må være nogen der kan hjælpe med det....
hejsa allesammen.. 10000000000000000 tak for alt jeres hjælp.. jeg vender lige situationen med gruppen imorgen og vender tilbage.. 1. hvis min klovn af en lærer læser her på eksperten er det helt fint, det er jo ikke forbudt at få hjælp :-) 2. vi har ingen compiler som er skrevet i forvejen, som vi kan tilføje metoderne til :-( 3. dette er kun datamatiker studiet ikke engang datalogi, så det er måske lidt vildt 4. jeg får lige gruppemedlemmerne til at kigge ind på spm så hurtigt som muligt
så ha' lige lidt sidste info: på Coco siden er der et eksempel (TASTE) som indeholder: en .ATG fil. en Scanner/Parser (genereret vha. coco går jeg udfra) en CodeGenerator!! (så her kan i måske hente lidt hjælp til hvordan så'en en ser ud)
måske ville han blive sur over at blive kaldt en klovn ...
re 2)
Uden at kende noget til coco så vil jeg antage at det fungerer som:
coco konverterer grammatikken (.atg fil) til noget kode (C/C++, Java, C#) I skriver noget kode (C/C++, Java, C#) som for hver grammatik del genererer noget (PVM assembler siger i)
de to dele compiles sammen til et færdig program som er jeres compiler
den compiler kan så compilere parva input til PVM assembler
re 3)
jeg troede faktisk ikke at datamatikere arbejdede med compiler teknologi
har lige snakket med gruppen.. de er osse pænt forvirrede.. vi får fat på vores lærer ( læs Al Bundy ) imorgen, så har vi forhåbentlig noget mere konkret.. men 1234332345 tak indtil videre
Synes også det lyder som et meget teoretisk og dybtegående emne til en uddannelse som datamatiker. Jeg er selv uddannet datamatiker og har derefter læst 2 semestre på datalogi. Det er først på universitetet at jeg har beskæftiget mig med compilere!
Det er så meningen at vi bare skal forestille os at der er lavet en compiler, hvor vi så skal skrive koden for While metoden og for CompExpression metoden, i C#
nheilbuth, arne v, sovsekoder, soreno tak for jeres gode forsøg på at hjælpe. hvis i ligger et svar her http://eksperten.dk/spm/671442 så er der lidt point til jer.. 2 grupper ud af 5 løste opgaven, de skulle dog skrive om på opgaven for at den kunne løses... hvor fed en lærer har vi lige ;-(
Da jeg gik på uni var den en historie om den gamle professor som af princip forelæste om emner udenfor pensum - fordi pensum kunne de studerende jo selv læse.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.