Kapitel 6 - instuderingsfrågor Flashcards
Vad är en variabel i ett programmeringsspråk?
En variabel är ett namngivet utrymme i primärminnet. Till skillnad från literal och konstant.
Varför är det nödvändigt att veta vilken datatyp en variabel har?
Det är datatypen som anger hur vi skall tolka det bitmönster som ligger lagrat i variabeln. Datatypen anger vilken typ av operationer som kan utföras och vilka värden en variabel kan ha.
Vad är skillnaden mellan källkod och objektkod?
Källkod är den programkod som programmeraren skriver. Objektkod är den översättning av källkoden som går att köra på en dator.
(Källkod kan med hjälp av lexical analyzer och parser översättas till en objektkod, som bildar ett objektprogram.)
Producerar ett syntaktiskt korrekt program alltid korrekta resultat? Motivera ditt svar.
Nej, ett syntaktiskt korrekt program kan innehålla fel, t.ex. logiska fel, som gör att
programmet ger inkorrekta resultat.
Vad kallas ett program som översätter källkod till maskinkod?
Kompilator.
Vad kännetecknar en datastruktur av typen struct/record (aggregate type)?
Att det är en datastruktur sammansatt av data som kan ha olika typ
Vad innebär det att en parameter till en subrutin överförs som värde (passed by value)?
Passed by value innebär att parametern överförs som ett kopierat värde och att detta kopierade värde lagras i en lokal variabel i subrutinen. Det vill säga att i parameters, när en funktion anges så ändras inte den ursprungliga (formella) parametern, utan endast den nya (aktuella) parametern.
Vad innebär det att en parameter till en subrutin överförs som referens (passed by reference)?
Passed by reference innebär att parametern överförs som en referens till en plats där den ligger lagrad, vilket innebär att eventuella ändringar görs i den ursprungliga variabeln. Dvs att den ursprungliga variabeln också ändras, genom att ge funktionen direkt tillgång till parameterns adress.
Vad gör en assemblator/assemblerare (assembler)?
Översätter assembly språk (andra generationen) till maskinkod
Vad kännetecknar en datastruktur av typen array?
Alla element i datastrukturen är av samma datatyp, och att de enskilda elementen nås via index
Vilka är de fyra stora programmeringsparadigmerna (programming paradigms)?
Imperativ, funktionell, objektorienterad och deklarativ (logik-) programmering.
Ange fyra vanliga primitiva datatyper.
Heltal (integer), flyttal (floating point number), tecken (character), boolean (sanningsvärde).
Vad gör en kompilator (compiler)?
En kompilator översätter källkod, skriven i ett programmeringsspråk, till exekverbar
maskinkod.
Ett program kan ge upphov till tre olika typer av fel: syntaktiska fel (syntactic errors),
exekveringsfel (runtime errors) och logiska fel (logic errors). Vilken typ av fel är mest
allvarliga och varför?
Logiska fel, eftersom de inte ger upphov till något felmeddelande.
.Ett program kan ge upphov till tre olika typer av fel: syntaktiska fel (syntactic errors),
exekveringsfel (runtime errors) och logiska fel (logic errors). Vilket typ av fel är minst
allvarliga och varför?
Syntaktiska fel, eftersom de upptäcks redan av kompilatorn.
Vad är skillnaden mellan en kompilator (compiler) och en interpretator (interpreter)?
En kompilator (compiler) översätter programkod/källkod till körbar kod. En interpretator
(interpreter) tolkar programkod/källkod vid själva körningen och utför då instruktionerna i
programkoden/källkoden.
Vad är concurrent programming?
Programmering där man programmerar flera parallella exekveringsvägar (trådar) i samma
program. (kan vara via time-sharing eller flera CPU)
Beskriv kortfattat begreppen sekvens, selektion och iteration.
En sekvens är en följd av instruktioner som utförs i ordning.
Selektion är en valmöjlighet - att utföra olika instruktioner beroende på programmets
tillstånd (t ex genom if-satser).
Iteration innebär att samma instruktion eller sekvens av instruktioner körs flera gånger (t ex
med loopar).
En variabel pekar på ett bitmönster i lagrat i minnet; vad behöver vi veta för att kunna tolka bitmönstret på rätt sätt?
Vilken datatyp variabelns data har. Det är datatypen som anger hur programmet skall tolka
det bitmönster som ligger lagrat i variabeln.
Översättningsprocessen (translation process) av ett källkodsprogram (source program) till ett objektkodsprogram (object program) består av tre aktiviteter, vilka?
Lexical analyzer, parser och code generator.
.Ge exempel på två olika sätt att beskriva algoritmer.
Flödesdiagram och pseudokod.
Vilken generation av programmeringsspråk kännetecknas av:
- ett-till-ett-förhållande mellan språkinstruktioner och maskininstruktioner;
- inneboende maskin-beroende?”
Andra generationen - assembly språk
Vilken generation av programmeringsspråk kännetecknas av: - maskinoberoende (vanligtvis); - varje primitiv motsvarar en sekvens av maskinspråksinstruktioner?
Tredje generationens
Vad är en literal i ett programmeringsspråk?
En literal är en typ av variabel som har ett specifikt värde. Ett explicit värde av en viss datatyp.
Vad är en konstant i ett programmeringsspråk?
En variabel som har ett konstant värde. En namngiven literal. / Ett namngivet värde av en viss datatyp.
.I objektorienterad programmering har man klasser och objekt. Utöver detta så finns det tre egenskaper som kännetecknar objektorienterad programmering, vilka?
Inheritance (arv), encapsulation (inkapsling) och polymorphism
Vad är en tråd i concurrent programmering?
En concurrent/parallell exekveringsväg inom samma program/process. En tråd är mindre processer inom en större process som kan utföras “parallellt”
Vad kallas den grundläggande byggstenen i imperativa programmeringsspråk?
Procedur
Vad är den grundläggande byggstenen i logikprogrammeringsspråk?
Logiska formler
Vad kallas den logiska härledningsteknik som används i logikprogrammering?
Resolution (logisk härledning, deductive reasoning)
I objektorienterad programmering, vad kallas mallarna från vilka objekt skapas?
Klasser
Alla programmeringsspråk har tre typer av styrning av programflödet, vilka?
Sekvens, selektion och repetition.
Vad är syftet med att använda procedurenheter (subprogram, subrutin, procedur, funktion,
metod, predikat etc.) vid programmering?
Används för att förenkla programutveckling genom abstraktion.
Vad innebär arv i objektorienterad programmering?
Arv (inheritance) är en av egenskaperna i objektorienterad programmering. Det innebär att man kan skapa klasser, och underklasser som ärver dessa egenskaper.