EP2
50 Questions
11 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Кой от следните методи е най-мощния parsing метод?

  • a) LL(1)
  • б) Canonical LR (correct)
  • в) SLR
  • г) LALR

Проверка на типовете се извършва по време на:

  • а) Лексически анализ
  • б) Синтактичен анализ
  • в) Syntax directed translation (correct)
  • г) Оптимизация на кода

Кое от следните твърдения е ГРЕШНО?

  • Контекстно-свободната граматика се използва за лексически и синтактични правила
  • Проверка на типовете се извършва преди синтактичния анализ (correct)
  • Програмите, написано на езици от високо ниво могат да се транслират до различни междинни представяния
  • Аргументите на функция могат да се предават чрез програмния стек

Кои от следните правила на граматиката нарушават изискванията за операторна граматика? A, B, C са нетерминали, а a, b, c са терминали.

<p>само 1 и 4 (D)</p> Signup and view all the answers

Коя от следните фази на компилатора генерира поток от атоми?

<p>Синтактичен анализ (A)</p> Signup and view all the answers

Кое от следните е ГРЕШНО?

<p>Алгоритъм за синтактичен анализ, който извършва сканиране отляво надясно и отклонение най-вдясно е RL(1) (B)</p> Signup and view all the answers

В компилатора ключовите думи на езика се разпознават по време на:

<p>лексическия анализ на програмата (C)</p> Signup and view all the answers

В сравнение с програмата, преведена/транслирана от компилатор, същата програма, когато е интерпретирана се изпълнява:

<p>по-бавно (B)</p> Signup and view all the answers

В контекста на компилаторите, кое от изброените не е междинно представяне на изходната програма?

<p>Символна таблица (D)</p> Signup and view all the answers

Как се нарича транслатор, който използва програма написана на език от високо ниво като входна програма и създава машинен код като изход?

<p>Компилатор (B)</p> Signup and view all the answers

Компютърна програма, която преобразува една програма в машинен език наведнъж е:

<p>Компилатор (B)</p> Signup and view all the answers

Компютърна програма, която преобразува асемблерен език в машинен език е:

<p>Асемблер (C)</p> Signup and view all the answers

Кой език се разбира лесно/директно от компютъра?

<p>Машинен език (C)</p> Signup and view all the answers

Асемблерния език:

<p>използва азбучни кодове вместо двоични числа, използвани в машинен език (B)</p> Signup and view all the answers

Как се нарича процеса, който се използва за преобразуване на набор от инструкции или програма, които са написани на език от високо ниво, в инструкции (или програма), които могат да се изпълняват на компютър?

<p>компилиране (B)</p> Signup and view all the answers

Кое от следните създава вход за компилаторите?

<p>препроцесор (D)</p> Signup and view all the answers

Каква прави интерпретатора, ако настъпи грешка?

<p>спира изпълнението (B)</p> Signup and view all the answers

Какво прави компилатора, ако настъпи грешка?

<p>чете цялата програма, дори и ако срещне грешки (C)</p> Signup and view all the answers

Изходът от асемблер се нарича

<p>обектен файл (C)</p> Signup and view all the answers

На колко типа е разделен синтактичния анализ?

<p>2 (A)</p> Signup and view all the answers

Когато синтактичния анализатор (парсера) започне създаването на дървото от стартовия символ и след това опита да преобразува стартовия символ във входа, входа се нарича:

<p>отгоре-надолу (B)</p> Signup and view all the answers

Вид рекурсивно спускане, което не изисква връщане назад (backtracking) е:

<p>предсказващ (A)</p> Signup and view all the answers

В кой от следните методи синтактичния анализатор стартира процеса на ново като използва различни правила за същата продукция, ако едно извеждане на продукцията се провали?

<p>връщане назад (backtracking) (C)</p> Signup and view all the answers

Предсказващия синтактичен анализатор (парсер) налага някои ограничения на граматиката и приема само клас на граматиката, известен като LL(k) граматика

<p>вярно (A)</p> Signup and view all the answers

Кое от следните извеждания прави синтактичния анализатор отгоре-надолу по време на синтактичния анализ на входен низ?

<p>ляво извеждане (A)</p> Signup and view all the answers

Преместването (relocation) е процес на замяна на символните референции или имената на библиотеките с актуални използваеми адреси в паметта преди изпълнението на програма?

<p>вярно (A)</p> Signup and view all the answers

Коя фаза от компилатора е лексическия анализ?

<p>първа (A)</p> Signup and view all the answers

Лексическия анализатор се използва за:

<p>всички изброени (D)</p> Signup and view all the answers

Какво се случва, ако лексическия анализатор открие невалиден токен?

<p>генерира грешка (C)</p> Signup and view all the answers

Как лексическия анализатор прочита кода?

<p>буква по буква (C)</p> Signup and view all the answers

Имплементацията на коя символна таблица е базира на местоположението на референция?

<p>Hash Table (хеш таблица) (C)</p> Signup and view all the answers

Системни програми като компилатора са създадени за:

<p>повторно въвеждане (A)</p> Signup and view all the answers

Колко компонента има контекстно-свободната граматика?

<p>4 (C)</p> Signup and view all the answers

Как се нарича набора от токени?

<p>терминални символи (B)</p> Signup and view all the answers

Кое от изброените се нарича лява страна на правило/продукция?

<p>правилото се състои от нетерминал (A)</p> Signup and view all the answers

Кое от следните е графично изобразяване на извеждане (derivation) ?

<p>Parse Tree (синтактично дърво) (C)</p> Signup and view all the answers

В синтактичното дърво листата се наричат:

<p>терминали (A)</p> Signup and view all the answers

Кои от следните са ограничения (Limitations) на синтактичните анализатори?

<p>всички изброени (D)</p> Signup and view all the answers

Кое от следните твърдения е ВЯРНО?

<p>Всички изброени (D)</p> Signup and view all the answers

Коя грешка се очаква да бъде разпозната от семантичния анализатор?

<p>Всички изброени (D)</p> Signup and view all the answers

Коя от следните задачи трябва да се изпълнява в семантичния анализ?

<p>всички изброени (D)</p> Signup and view all the answers

Коя фаза на компилиране е генерирането на код?

<p>последна (D)</p> Signup and view all the answers

В насочен ацикличен граф, листата представляват:

<p>всички изброени (D)</p> Signup and view all the answers

На колко типа може да се раздели оптимизацията?

<p>2 (A)</p> Signup and view all the answers

Компилаторът може да използва йерархията на паметта и регистрите на процесора:

<p>вярно (A)</p> Signup and view all the answers

Компилатор за език от високо ниво, който работи на една машина и създава код за друга машина, се нарича:

<p>cross (C)</p> Signup and view all the answers

Какъв приоритет има конкатенацията?

<p>втори (B)</p> Signup and view all the answers

Регулярен израз, в който произволен брой 0 е следван от произволен брой 1 е следван от произволен брой 2 е

<p>0<em>1</em>2* (B)</p> Signup and view all the answers

Кое от следните НЕ е низ от регулярни израз R = (ab + abb)*bbab ?

<p>abababab (D)</p> Signup and view all the answers

Кой от следните езици описва дадената граматика: S -> AA, A -> aa, A -> bb ?

<p>L = {aaaa,aabb,bbaa,bbbb} (A)</p> Signup and view all the answers

Study Notes

Compiler Phases

  • Lexical analysis is the phase of the compiler that generates a stream of atoms.
  • Syntax analysis is divided into two types: top-down and bottom-up parsing.
  • Top-down parsing starts with the start symbol and tries to derive the input string.
  • Bottom-up parsing starts with the input string and tries to derive the start symbol.

Parsing Methods

  • Top-down parsing is a parsing method that starts with the start symbol and tries to derive the input string.
  • Bottom-up parsing is a parsing method that starts with the input string and tries to derive the start symbol.
  • Recursive descent parsing is a top-down parsing method that does not require backtracking.
  • Predictive parsing is a top-down parsing method that imposes some restrictions on the grammar and accepts only a certain class of grammars, known as LL(k) grammars.

Compiler Components

  • A compiler is a computer program that translates a program written in a high-level language into machine code.
  • An assembler is a computer program that translates assembly language into machine code.
  • An interpreter is a computer program that directly executes a program written in a high-level language.

Syntax Analysis

  • Syntax analysis is the phase of the compiler that checks the syntax of the input program.
  • The syntax analyzer (parser) checks the syntax of the input program and generates a parse tree.
  • The parse tree is a graphical representation of the derivation of the input string.
  • The leaves of the parse tree are the tokens.

Errors and Exceptions

  • If the lexical analyzer encounters an invalid token, it reports an error.
  • If the syntax analyzer encounters a syntax error, it reports an error.
  • If the semantic analyzer encounters a semantic error, it reports an error.

Optimization

  • Optimization is the phase of the compiler that tries to improve the performance of the generated code.
  • Optimization can be divided into two types: peephole optimization and global optimization.

Other

  • A compiler for a high-level language that runs on one machine and generates code for another machine is called a cross-compiler.
  • The reordering of symbolic references or library names with actual addresses in memory before program execution is called relocation.
  • A system program like a compiler is created for system administration and maintenance.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Test your knowledge about parsing methods and determine which one is considered the most powerful.

More Like This

Use Quizgecko on...
Browser
Browser