kompilatorer och interpretatorer

Denna begreppslista täcker viktiga termer relaterade till kompilatorer och interpretatorer inom datavetenskap, vilket är avgörande för förståelsen av programmeringsspråk och deras bearbetning.

William2009·32 flashcards·32 frågor
universitetcomputer_scienceprogramming
0
Kan
1 / 32
0
Övar
Framsida

Kompilator

Tryck för att vända
Baksida

Ett program som översätter hög nivå-programkod till maskinkod.

Tryck för att vända
Kan
Övar fortfarande

Quiz(32 frågor)

Fråga 1 av 32

1. Vilken av följande beskriver bäst vad en kompilator gör?

Begrepp i det här studiesetet(32)

Kompilatorer(16)

Kompilator

Ett program som översätter hög nivå-programkod till maskinkod.

Vad gör en lexer?

Delar upp koden i lexem, identifierar tokens.

Syntaxanalys

Kontrollerar koden mot grammatikregler, skapar en syntaxträd.

Vad är semantisk analys?

Verifierar meningsfullheten av koden, t.ex. typkontroll.

True or False: Kompilatorer kör kod direkt.

False. De översätter till maskinkod som körs av en processor.

Vad är en abstrakt syntaxträd?

En representation av koden som fokuserar på dess struktur, inte syntax.

Optimering

Processen att förbättra kodens prestanda och effektivitet, t.ex. loop-unrolling.

Fyll i luckan: Kompilatorer omvandlar _______ till maskinkod.

programkod

Målkod vs. Källkod

Källkod är programmeringsspråket. Målkod är den översatta maskinkoden.

Vad är en kodgenerering?

Steget där kompilatorn producerar den slutliga maskinkoden.

Passer i en kompilator

En genomgång av koden för att utföra specifika analyser eller transformationer.

Vad innebär typkontroll?

Kontroll av datatyper för att säkerställa korrekt användning under kompilering.

Vad är en symboltabell?

En datastruktur som lagrar information om variabler, typer och funktioner.

True or False: Kompilatorer kan utföra runtime-felkontroll.

False. Kompilatorer kontrollerar vid kompilering, ej vid körning.

Kompilering vs. Tolkning

Kompilering översätter hela programmet. Tolkning kör programmet linje för linje.

Exempel på språk som använder kompilatorer

C, C++, Rust.

Interpretatorer(16)

Vad gör en interpretator?

En interpretator översätter och kör källkod rad för rad i realtid.

Fördelar med interpretatorer?

- Ingen kompilering behövs - Snabb feedback under utveckling - Plattformoberoende körning

Interpretatorer är...

Verktyg som exekverar programkod utan att först kompilera den.

Sant eller falskt: Interpretatorer skapar en exekverbar fil.

Falskt. Interpretatorer kör koden direkt utan att skapa en fil.

Exempel på språk med interpretatorer?

Python, Ruby, JavaScript.

Vad är 'bytecode'?

En mellanliggande kod som ibland används av interpretatorer för att öka hastigheten.

Interpretator vs. kompilator.

Interpretator: Kör kod direkt. Kompilator: Översätter hela koden till maskinkod.

Orsaken till användning av interpretatorer?

De erbjuder snabb prototypning och minskar tiden för felhantering.

Hur hanterar en interpretator fel?

Den stoppar körningen och ger ett felmeddelande när ett fel upptäcks.

Vilken typ av språk använder oftast interpretatorer?

Hög nivå programmeringsspråk som ofta fokuserar på snabb utveckling.

Sant eller falskt: Interpretatorer är långsammare än kompilatorer.

Sant. Eftersom de exekverar rad för rad, vilket kan leda till lägre prestanda.

Fyll i: Interpretatorer är _______ i realtid.

interaktiva

Skillnaden mellan direkt och indirekt interpretator?

Direkt: Kör koden utan mellanliggande steg. Indirekt: Använder bytecode eller liknande.

Kompilatorer kräver _______ innan körning.

kompilering

Förbättra utvecklingsprocessen med interpretatorer?

- Snabb testning av kod - Interaktiv felsökning - Ingen omkompilering

Vad är 'REPL'?

Read-Eval-Print Loop, en interaktiv miljö för att köra kod i realtid.

Frågor i det här studiesetet(32)

1. Vilken av följande beskriver bäst vad en kompilator gör?

A.Översätter hög nivå-programkod till maskinkod.
B.Kör programkod linje för linje.
C.Analyserar koden för syntaxfel.
D.Genererar användargränssnitt.

2. Vad är en primär funktion hos en interpretator?

A.Översätta och köra källkod rad för rad.
B.Skapa en exekverbar fil för programmet.
C.Kompilera all källkod innan körning.
D.Spara koden i en databas.

3. Vad är syftet med lexern i en kompilator?

A.Att dela upp koden i lexem och identifiera tokens.
B.Att optimera kodens prestanda.
C.Att generera maskinkod.
D.Att utföra typkontroll.

4. Vilken av följande fördelar är ENDAST kopplad till interpretatorer?

A.Ingen kompilering behövs.
B.Det går snabbare att köra programmet.
C.Det resulterar i en exekverbar fil.
D.Det är alltid plattformsberoende.

5. Vad kontrollerar syntaxanalysen?

A.Grammatikregler och skapar syntaxträd.
B.Prestanda och minnesanvändning.
C.Variabeldeklarationer.
D.Typkontroll och semantik.

6. Vilket av följande språk är kända för att använda interpretatorer?

A.Java
B.C++
C.Python
D.C#

7. Vad är målkod?

A.Den översatta maskinkoden.
B.Den ursprungliga källkoden.
C.En typ av felmeddelande.
D.En databas för variabler.

8. Vad händer om en interpretator stöter på ett fel?

A.Den fortsätter att köra koden.
B.Den stoppar körningen och ger ett felmeddelande.
C.Den hoppar över felet och går vidare.
D.Den skapar en loggfil.

9. Vad innebär semantisk analys?

A.Verifierar meningsfullheten av koden, inklusive typkontroll.
B.Skapar en syntaxträd.
C.Kompilerar koden till maskinkod.
D.Delar upp koden i tokens.

10. Vad är en skillnad mellan en direkt och en indirekt interpretator?

A.Direkt interpretator kör koden utan mellanliggande steg.
B.Indirekt interpretator används endast för kompilatorer.
C.Direkt interpretator skapar en bytecode.
D.Indirekt interpretator kör koden rad för rad.

11. Vilken av följande är INTE en funktion av en kompilator?

A.Att optimera kodens prestanda.
B.Att köra programkod i realtid.
C.Att generera maskinkod.
D.Att utföra syntaxanalys.

12. Vad innebär termen 'REPL' i programmering?

A.En typ av databas.
B.En interaktiv miljö för att köra kod.
C.En kompileringsteknik.
D.Ett protokoll för filöverföring.

13. Vad är typkontroll?

A.Kontroll av datatyper för korrekt användning.
B.Analys av syntaxfel.
C.Generering av kod.
D.Optimisering av loopar.

14. Vilket av följande påståenden är sant om interpretatorer?

A.De kör alltid snabbare än kompilatorer.
B.De är plattformsoberoende.
C.De skapar alltid en exekverbar fil.
D.De kan inte hantera fel.

15. Vad är en symboltabell?

A.En datastruktur som lagrar information om variabler och funktioner.
B.En lista över felmeddelanden.
C.En typ av kodblock.
D.En specifikation av programmet.

16. Vad är bytecode?

A.Kod som körs direkt av processorn.
B.En mellanliggande kod som kan användas av interpretatorer.
C.Källkod som är skriven i ett lågnivåspråk.
D.En typ av felmeddelande.

17. Vad innebär optimering i en kompilator?

A.Förbättrar kodens prestanda och effektivitet.
B.Genererar användargränssnitt.
C.Kör koden steg för steg.
D.Dela upp koden i lexem.

18. Vilken av följande är INTE en fördel med att använda interpretatorer?

A.Snabb testning av kod.
B.Interaktiv felsökning.
C.Ingen kompilering behövs.
D.Högre prestanda än kompilatorer.

19. Vilken typ av språk använder oftast kompilatorer?

A.C, C++, Rust.
B.Python, Ruby, JavaScript.
C.HTML, CSS.
D.SQL, XML.

20. Vad kräver kompilatorer innan körning?

A.Körning av koden direkt.
B.Ingen åtgärd krävs.
C.Kompilering av koden.
D.Tolkning av bytecode.

21. Vad är en abstrakt syntaxträd?

A.En representation av koden som fokuserar på dess struktur.
B.En typ av felmeddelande.
C.En lista över operatorer.
D.En specifikation av syntaxfel.

22. Vad är en typisk användning av en interpretator?

A.Att skapa programvaror för företag.
B.Att snabbt prototypa och testa kod.
C.Att designa lågnivåspråk.
D.Att förbereda koden för kompilering.

23. Vad innebär kodgenerering?

A.Produktion av den slutliga maskinkoden.
B.Analys av grammatikfel.
C.Delning av koden i tokens.
D.Skapande av en symboltabell.

24. Hur förbättrar interpretatorer utvecklingsprocessen?

A.Genom att alltid skapa en exekverbar fil.
B.Genom att kräva mer tid för kompilering.
C.Genom att möjliggöra snabb feedback och felsökning.
D.Genom att exekvera programmet långsammare.

25. Vad gör en pass i en kompilator?

A.Genomgår koden för specifika analyser eller transformationer.
B.Kör koden.
C.Genererar en symboltabell.
D.Delar koden i lexem.

26. I vilket scenario skulle en interpretator vara mer fördelaktig än en kompilator?

A.När programmet är klart och ska distribueras.
B.När snabb feedback behövs under utvecklingen.
C.När prestanda är den högsta prioriteten.
D.När programmet ska köras på specifik hårdvara.

27. Vilken av följande är en skillnad mellan kompilering och tolkning?

A.Kompilering översätter hela programmet, medan tolkning kör det linje för linje.
B.Tolkning skapar en symboltabell, medan kompilering inte gör det.
C.Kompilering kör programmet, medan tolkning inte kan.
D.Kompilering utför runtime-felkontroll, medan tolkning inte gör det.

28. Vilket alternativ beskriver bäst hur en interpretator fungerar?

A.Den översätter och kör koden rad för rad.
B.Den skapar en exekverbar fil av koden.
C.Den analyserar koden och ger ett sammanhang utan att köra den.
D.Den översätter hela programmet på en gång innan körning.

29. Vilken av följande processer sker innan kodgenerering i en kompilator?

A.Semantisk analys
B.Kodexekvering
C.Körning av programmet
D.Syntaxanalys

30. Vilket av följande alternativ är en nackdel med att använda en interpretator?

A.Det kräver ingen kompilering.
B.Koden körs snabbare än kompilatorer.
C.Det leder ofta till lägre prestanda.
D.Det möjliggör snabb feedback under utveckling.

31. Vilken av följande är en korrekt beskrivning av en symboltabell?

A.En lista över variabler som används under körning
B.En datastruktur för att lagra variabler, typer och funktioner
C.En del av maskinkoden
D.En algoritm för att optimera kod

32. Vilken av följande påståenden är INTE korrekt när det gäller interpretatorer?

A.De tillåter snabb prototypning.
B.De kan använda bytecode för att öka hastigheten.
C.De skapar en permanent exekverbar fil.
D.De ger omedelbar feedback på programmeringsfel.

Relaterade studieset

Skapa ditt eget studieset

Ladda upp en PDF, klistra in dina anteckningar eller beskriv ett ämne – AI genererar flashcards, quiz och mer på några sekunder.