Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

Interpreter execution

What is an interpreter?

  • An interpreter is a type of translator that executes high-level code line by line

  • It does not convert the entire program into a separate machine code file

How does it work?

  • The source code is read, analysed, and executed one line at a time

  • No complete machine code file is produced, only immediate execution happens

  • If there is an error in a line, execution stops, and the error is reported immediately

Feature

Explanation

No output file

It does not generate a standalone .exe or machine code file

Immediate execution

Runs the code as it is interpreted

Slower execution

Each line is translated every time the program runs

Useful for development

Good for testing and debugging during coding

Stops on first error

Detects and reports errors as they occur

Example use cases

  • Used in educational tools, like Python shells or BASIC interpreters

  • Helpful for rapid prototyping or when frequent changes are made

Compilation stages

What is compilation?

  • Compilation is a process that translates a program written in a high-level programming language into machine code

  • Only machine code can be executed by a computer

  • There are four stages involved in this process:

    • Lexical Analysis

    • Syntax Analysis

    • Code Generation

    • Optimisation

Lexical analysis

  • In A Level Computer Science, lexical analysis means studying the words or vocabulary of a language

  • This stage involves identifying lexical ‘tokens’ in the code

  • Tokens represent small meaningful units in the programming language, such as:

    • Keywords

      • var, const, function, for, while, if

    • Identifiers

      • Variable names, function names

    • Operators

      • ‘+’, ‘++’, ‘-‘, ‘*’

    • Separators

      • ‘,’ ‘;’, ‘{‘, ‘}’, ‘(‘, ‘)’

  • During this stage, unnecessary elements like comments and whitespace are ignored

  • For example, if the following code is being compiled:

var x = function(x,y) {

if(x>2) {

return x*y;

}

return x+y;
}

  • The result of lexical analysis is a token table

 

Token

Type

1

var

Keyword

2

x

Identifier

3

=

Operator

4

function

Keyword

5

(

Separator

6

x

Identifier

7

,

Separators

8

y

Identifier

9

)

Separator

10

{

Separator

11

return

Keyword

12

x

Identifier

13

*

Operator

14

y

Identifier

15

;

Separator

16

}

Separator

Syntax analysis

  • Now that tokens have been identified, syntax analysis makes sure they all adhere to the syntax rules of the programming language

  • A symbol, e.g. ‘$’ could be a valid token but not a valid character according to particular programming languages

  • The dollar symbol would be flagged as breaking the syntax rules

  • Other syntax errors programmers commonly make include mismatched parentheses or missing semicolons

  • If the code passes the syntax analysis, the compiler can create an Abstract Syntax Tree (AST)

  • An AST is a graph-based representation of the code being compiled

  • An AST is an efficient way to represent the code for the next step

Example abstract syntax tree

  • For the same code as above, the following abstract syntax tree can be created

Abstract syntax tree

Abstract syntax tree

Code generation

  • This step takes the AST and traverses it to generate object code that can be executed by the computer

Optimisation

  • This step modifies the code to make it more efficient without changing its functionality

  • This is important to attempt because it reduces the memory required to run the code, which leads to faster execution

  • A common optimisation action is removing duplicate code

  • If an ‘add’ function is written twice in the source code, a sophisticated compiler will notice this and include it only once in the object code

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注