Programspråk

The exercise was created 2021-06-01 by sabean. Question count: 19.




Select questions (19)

Normally, all words in an exercise is used when performing the test and playing the games. You can choose to include only a subset of the words. This setting affects both the regular test, the games, and the printable tests.

All None

  • Explain the pros and cons of recursion in relation to iteration. Rekursion tar mer minne från stacken och är långsammare än iteration, men gör att koden blir mindre. Rekursion lämpar sig också bättre för att ändra i datastrukturer, ex länkade listor och träd.
  • What do the terms T*, NT* and (NT union T)* mean? T: Terminaler, terminaler är lövnoder. dom ord som förekommer i språket. NT: Icke-terminaler, varje icke-terminal skapar en procedur. Är uppbygda av andra icke-terminaler och terminaler. NT union T: Procedurer : Produktionsregler, hur det är uppbygt, ex <sentence> ::= <noun-phrase> <verb-phrase>
  • What is the purpose of the symbol table in a parser? Dom används för att spara undan vilka IDn som har blivit initialisera. Samt vilken typ dom har och vart man hittar dom i minnet. Så man senare kan se till så man använder dom på rätt sätt.
  • In the lexical analyser, which 2 patterns differ from the lexemes which they match and why is that so? IDs och nummer, dom kan ändra värden, nummer kan va alla siffror och IDs kan bestå av alla olika bokstäver samt _. Allt annat tillhör grammatiken och ska matchas som dom står.
  • Give a short description of the main ideas behind Prolog. Relationer mellan fakta och regler baserat på logik.
  • What do the terms “l-value” and “r-value” mean? En datatyp består av namn, typ, plats, värde, lifetime och scope. L-value visar plats(location) på något som kan ta ett värde och r-value är värdet som ges till saken. Ex: A = 2. A-> l-value (left) och 2-> r-value (right).
  • In flow of control in imperative languages, constructs such as if-then-else, for loops, while loops and switch statements are further translated by the compiler to 2 basic flow of control structures. Show what an if-statement without an else-clause would look like. Först ett condition där villkoret kollas, om villkoret inte uppfylls (alltså icke-vilkoret är sant) hoppa över koden som ska loopas, annars kör loop-koden och kolla sedan villkoret igen. Ex while loop: L1: if(icke-villkor) goto L2 kod som ska utföras, goto L1 L2: Kod som ska köras efter loopen är klar. Kortfattat: Dom börjar med någon form av vilkor och sedan en goto för att antingen hoppa till koden som ska köras eller hoppa över loopen om vilkoret inte uppfylls, följt av ännu en goto för loopar där man hoppar tillbaka till där man kollar villkoret och alltihop upprepas.
  • Why are “interfaces” required between modules? How does a compiler use these? Ett interface berättar för compilern att det finns en funktion “exempel” även om den inte har nått den funktionen än eller om den ligger i en annan fil. Annars kan compilern försöka använda en funktion som den inte vet existerar och det kommer uppstå errors. Används så man kan göra separat kompilering av filer och sedan bunta ihop dom.
  • Name (i) the advantage and (ii) the disadvantage of pass/call-by-value. call-by-value ändrar inte på värdet för variabeln utanför funktionen, så vi kan göra vad vi vill med den -> renhet -> Den har inga sido-effekter. Det är även den simplaste och mest lättanvända sättet att skicka variabler till en funktion. Dock kan det bli dyrt för minnet om man ska skicka in stora datastrukturer som t.ex. En array då man måste kopiera över den till en ny data område
  • What are the 3 main flow of control constructs in functional programming? Sekvens: default 2-vägs val: if-then-else, if-then, case, cond Repetition: for, while, do-while, rekursion
  • Explain the concept "scope". Vad en variabel kan se. Ex Lokal kan bara se lokala saker och global kan också se icke-lokala saker. Det har att göra med name binding och vem som ser vad.
  • What is the purpose of the operator table in a parser? Operator tabellen sparar information om dom olika operationer som kan utföras och vilka typer som tillåts i samband med vilka operationer. Den används för att kolla så att vi använder rätt typer när vi vill utföra en operation, ex kallar en operatorfunktion där vi skickar in två datatyper och en operation och kollar om det blir giltigt ex integer + real = real.
  • Give a definition of (i) an actual parameter and (ii) a formal parameter. Formal parameters: IDs Actual parameters: expressions
  • What role do types play in a programming language? Typen av ett objekt visar hur stor plats objektet behöver i minnet, vad det är för något (float, integer etc) samt hjälper till med hur vi kan använda objekten korrekt.
  • Explain why "ID already declared" is a semantic error and not a syntactic error. Semantiken kollar så att språket har en betydelse, att vi har tvp variabler av samma namn fungerar syntaktiskt eftersom rätt saker kommer fortfarande på rätt plats ex “var A, B, A”. Det följer språkets uppbyggnad så därför är det syntaktiskt korrekt. Problemet är att det fungerar ju inte i praktiken att ha två variabler av samma namn - makes no sense och det semantiken har koll på är att det makes sense.
  • Define the term "semantics" Semanitcs är till för att meningen ska ha en betydelse, till exempel syntaktiskt så hade meningen “Boken läser ett barn” varit korrekt, eftersom den är uppbyggd på rätt sätt. Men semantiskt hade det inte varit rätt eftersom meningen saknar betydelse, meningen “Barnet läser en bok” hade däremot varit semantiskt korrekt.
  • What are the 2 main ideas behind error handling and recovery? Saknas symboler (gör inget) Extra symboler (skippa)
  • What is a "predicate" in a programming language? En funktion som retunerar true eller false, den kollar om något är sant. Ex är 2 en integer?
  • What is the purpose of the token table(s) in a parser? Den sparar lexemes motsvarande tokens och keywords så att parsen kan matcha saker till rätt lexeme efter att lexern läst in alla lexeme och gett dom motsvarande tokens.

All None

Shared exercise

https://spellic.com/eng/exercise/programsprak.10446323.html

Share