1 / 48

SOCS

SOCS. Hoofdstuk 3 Basisprogrammatuur. Inhoud. De Vertaler De Voorvertaler Enkel MACRO en MCREINDE directieven Extra macro-directieven De Lader De Binder De Vertolker Het Speurprogramma Het Opstarten van de Computer. Voorvertaler. MACRO Som x,y HIA R0,<x> OPT R0,<y> MCREINDE

allayna
Download Presentation

SOCS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOCS Hoofdstuk 3 Basisprogrammatuur

  2. Inhoud • De Vertaler • De Voorvertaler • Enkel MACRO en MCREINDE directieven • Extra macro-directieven • De Lader • De Binder • De Vertolker • Het Speurprogramma • Het Opstarten van de Computer

  3. Voorvertaler MACRO Som x,y HIA R0,<x> OPT R0,<y> MCREINDE Som a,b DRU STP a: RESGR 1 b: RESGR 1 HIA R0,a OPT R0,b DRU STP a: RESGR 1 b: RESGR 1 Voor-vertaler Bronprogramma(zonder macro-definities en oproepen) Bronprogramma (met macro-definities op -oproepen) Engels: Pre-processor

  4. Aparte voorvertaler Macro-verwerking = Symboolmanipulatie  Code-generatie In andere context gebruiken (bijv. tekst) Ingebouwd in vertaler Betere foutenboodschappen Gebonden aan taal Implementatie

  5. Taken  laten staan  onthouden en verwijderen  vervangen Niets met macro’s te maken Macro-definitie Macro-oproep Toestanden • Kopieermode • Definitiemode • Expansiemode

  6. Enkel MACRO en MCREINDE • Enkel MACRO- en MCREINDE-directieven • Geen: • MEVA, MVSP, MSPR, MFOUT, MNTS • Wel: • Parameters • Lokale symbolische adressen

  7. Kopieermode Invoer = MACRO  definitiemode xyz …(xyz gedefinieerde macro) Argumententabel expansiemode iets anders Gewoon kopiërenblijf in kopieermode Definitiemode Eerste lijn = hoofdingOnthoud Volgende lijn = MCREINDE Einde definitie kopieermode iets anders Toevoegen aan definitie Taken

  8. Expansiemode Lichaam definitie lezen Elke lijn: Substituties <NAAM> Opzoeken in argumententabel $Etiket Omzetten naar unieke naam_tellerEtiket Geneste macro-oproep? Huidig expansie onderbreken Argumententabel Nieuwe expansie Andere gevallen Gewijzigde lijn naar uitvoerbestand Taken

  9. andere lijn hoofding MACRO MCREINDE andere lijn einde lichaam macro-oproep genesteoproep eindegenesteoproep Toestandsdiagramma Kopieer-mode Definitie-mode Expansie-mode

  10. Toestand: Kopieer Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  11. Toestand: Kopieer Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 | Macro SOM  som v. elem. v. rij

  12. Toestand: Kopieer | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld Definitie | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  13. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  14. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  15. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  16. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  17. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  18. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  19. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  20. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  21. Toestand: Definitie | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30

  22. Toestand: Kopieer | Macro SOM  som v. elem. v. rij Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 | Begin van het programma

  23. Toestand: Kopieer | Macro SOM  som v. elem. v. rij Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld Expansie | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 | Begin van het programma

  24. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 | C  som(i=0..3-1)X[i]

  25. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 HIA.w R0,0

  26. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 HIA.w R1,0

  27. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 _1lus: OPT R0,X(R1+)

  28. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 VGL.w R1,3

  29. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 VSP KL,_1lus

  30. Toestand: Expansie | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus Res C A X N 3 Argumententabel Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 BIG R0,C

  31. Toestand: Kopieer | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus BIG R0,C Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 HIA R0,C

  32. Toestand: Kopieer | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus BIG R0,C HIA R0,C Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 DRU

  33. Toestand: Kopieer | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus BIG R0,C HIA R0,C DRU Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 STP

  34. Toestand: Kopieer | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus BIG R0,C HIA R0,C DRU STP Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 C: RESGR 1

  35. Toestand: Kopieer | Macro SOM  som v. elem. v. rij | Begin van het programma | C  som(i=0..3-1)X[i] HIA.w R0,0 HIA.w R1,0 _1lus: OPT R0,X(R1+) VGL.w R1,3 VSP KL,_1lus BIG R0,C HIA R0,C DRU STP C: RESGR 1 Uitvoer-bestand Voorbeeld Kopieer | Macro SOM  som v. elem. v. rij MACRO SOM Res,A,N | <Res>  (i=0..<N>-1)<A>[i] HIA.w R0,0 HIA.w R1,0 $lus: OPT R0,<A>(R1+) VGL.w R1,<N> VSP KL,$lus BIG R0,<Res> MCREINDE | Begin van het programma SOM C,X,3 HIA R0,C DRU STP C: RESGR 1 X: 10;20;30 X: 10;20;30

  36. Extra Macro-directieven • MEVA, MVGL, MVSP, MSPR, MFOUT, MNTS • Lokale macro-variabelen • Globale voorvertaler-variabelen • Globale voorvertaler-etiketten

  37. Globale variabelentabel = GVT Macro-variabelen In Argumententabel = ALVT Globale etikettentabel = GET Lokale etikettentabel (LET) In macro-definitie- structuur Gegevensstructuren

  38. Globale variabelentabel = GVT Macro-variabelen In Argumententabel = ALVT Gegevensstructuren MEVA N,10 MEVA Debug,1

  39. Globale variabelentabel = GVT Macro-variabelen In Argumententabel = ALVT Gegevensstructuren MACRO SOM Res,A,N MEVA N1,<N>-1 … MCREINDE

  40. Globale etikettentabel = GET Lokale etikettentabel (LET) In macro-definitie- structuur Gegevensstructuren … $WHILE: MVGL <N>,0 … $EINDE: MNTS … $IF: MVGL <DEBUG>,10

  41. Globale etikettentabel = GET Lokale etikettentabel (LET) In macro-definitie- structuur Gegevensstructuren

  42. Afkorting Inhoud Aantal Gegevensstructuren GVT Globale voorvertaler variabelen 1 ALVT Macro-argumenten en lokale variabelen 1 / oproep GET Globale etiketten 1 LET Lokale etiketten van de macro 1 / definitie MCC Macro-conditie-code ( GVT) 1 teller Telt macro-oproepen ( GVT) 1

  43. Definitiemode LET opstellen Kopieermode $etiket: … Aan GET toevoegen <NAAM> Opzoeken in GVT MEVA  GVT MNTS MFOUT MSPR  GET MVGL MVSP  GET Expansiemode <NAAM> Opzoeken in ALVT, ev. In GVT MEVA  ALVT of GVT MNTS MFOUT MSPR  LET MVGL MVSP  LET Aanpassingen voorvertaler Indien niet gekend:  lijnen overslaan tot etiket gevonden

  44. Van bronprogramma tot Uitvoerbaar programma Module A(met macro’s) Module B(met macro’s) Legende: Broncode Voorvertaler Machinecode Voorvertaler Module A(zonder macro’s) Module B(zonder macro’s) RAM Vertaler Vertaler UitvoerbaarProgramma Objectmodule A Objectmodule B Binder Programma-bibliotheek UitvoerbaarProgramma Lader

  45. Macro’s in tekst-context MACRO VERSE ANIMALS,SOUND Old Mac Donald had a farm, E-I-E-I-O And on his farm he had some <ANIMALS>, E-I-E-I-O With a <SOUND><SOUND> here and a <SOUND> \ <SOUND> there, here a <SOUND>, there a <SOUND>, everywhere a \ <SOUND> <SOUND> Old Mac Donald had a farm, E-I-E-I-O MCREINDE VERSE chicks,cheep VERSE ducks,quack VERSE turkeys,gobble

  46. Macro’s in tekst-context Old Mac Donald had a farm, E-I-E-I-O And on his farm he had some chicks E-I-E-I-O With a cheep cheep here and a cheep cheep there, here a cheep, there a cheep, everywhere a cheep \ cheep Old Mac Donald had a farm, E-I-E-I-O Old Mac Donald had a farm, E-I-E-I-O And on his farm he had some ducks E-I-E-I-O With a quack quack here and a quackquack there, here a quack, there a quack, everywhere a quack \ quack Old Mac Donald had a farm, E-I-E-I-O …

  47. Macro’s in tekst-context MACRO VERSE ANIMALS,SOUND Old Mac Donald had a farm, E-I-E-I-O And on his farm he had some <ANIMALS>, E-I-E-I-O With a <SOUND><SOUND> here and a <SOUND> \ <SOUND> there, here a <SOUND>, there a <SOUND>, everywhere a \ <SOUND> <SOUND> Old Mac Donald had a farm, E-I-E-I-O MCREINDE VERSE chicks,cheep VERSE ducks,quack VERSE turkeys,gobble Indien ingebouwd in vertaler: *** fout *** Old: \ onbestaande functiecode

  48. Cursustekst • Hoofdstuk 3: pag. 23  pag. 44 • Hoofdstuk 3 volledig gezien: pag. 1  pag. 93

More Related