1 / 16

OPERATING SYSTEMS AND LANGUAGE TRANSLATORS

OPERATING SYSTEMS AND LANGUAGE TRANSLATORS. CIS 2380 TERM 2 – LANGUAGE TRANSLATORS Lee McCluskey – lee@hud.ac.uk. TERM 2 resources…. http//scom.hud.ac.uk/scomtlm/cis2380/ There will be a link from Unilearn. TERM 2 format …. 1 Lecture + 1 Tutorial or Practical A mix of practical + theory.

Télécharger la présentation

OPERATING SYSTEMS AND LANGUAGE TRANSLATORS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OPERATING SYSTEMS AND LANGUAGE TRANSLATORS CIS 2380 TERM 2 – LANGUAGE TRANSLATORS Lee McCluskey – lee@hud.ac.uk

  2. TERM 2 resources… http//scom.hud.ac.uk/scomtlm/cis2380/ There will be a link from Unilearn.

  3. TERM 2 format … 1 Lecture + 1 Tutorial or Practical A mix of practical + theory.

  4. Assessment One exam covering all term 2 material, 50% of module. You will be given 4 questions of which you have to choose 3 question to do in 2 hours. The exam is “closed book” – you must remember stuff !

  5. Language Translators • Computer Systems are full of FORMAL LANGUAGES – HTML, XML, Java, Pascal, BNF, Z, VDM, Python, Lingo, C++ … • There are languages for programming, for data, for database manipulation, for mark-up, for specification .. Sentences (programs) of LANGUAGES have to be compiled/interpreted/translated/executed/analysed by programs

  6. Compilers • Are the most commonly known language translator • A COMPILER translates a program P written in a ‘HIGH LEVEL’ language into a program Q written in a ‘LOW LEVEL’ language eg Java -> Byte code • Question: what is the relationship between programs P and Q ??????????

  7. Interpreters • Are commonly known language translators What is the difference between Interpreters and Compilers?

  8. Interpreters • Are commonly known language translators What is the difference between Interpreters and Compilers? • ANSWER: Interpreters analyse a program written in a ‘HIGH LEVEL’ language AND execute it. Eg languages such as Prolog, Scheme, Haskell, Basic have interpreters • Compilers analyse then translate, • Interpreters analyse then execute. • Interpreted code execution is invariably slower than compiled code execution..

  9. Some Jargon • Syntax – the ‘marks’ or ‘symbols’ used in a language • Syntax Specification – the set of symbols used in a language and the legal order that they may occur • GRAMMARS are often used to precisely specify syntax of languages

  10. Some Jargon Lexical Analysis – analysing the characters that make up program/sentence syntax to work out the components of the program/sentence Eg I f ( x x x x == 2 3 4 5 ) y y y = 4 2 ETC Are a sequence of characters. After lexical analysis this might translate to: Keyword(if) openbracket identifier(xxxx) operator(==) integer(2345) closedbracket Identifier(yyy) operator(=) integer(42) ….

  11. Some Jargon Parsing – analysing the components of the program/sentence to work out its syntactic structure IF-construct Keyword(if) openbracket identifier(xxxx) operator(==) integer(2345) Boolean Expression Statement

  12. TERM 2 contents … • Theory of Languages revision, Grammars and Properties of Grammars • Lexical Analysis, Scanning • Parsing • Automated Parser Generation • Symbol Tables • Other topics related to Compilers CODE ANALYSIS

  13. Related Subjects • Software Design: Compilers/interpreters can be very complex programs – they require good software development skills • Theory of computing: A great deal of the theory of automata, and grammars, is used to inform the practical pursuit of building language translators • Syntax and Semantics of Programs: You have to know how a language is structured, and what a language ‘means’ before you can write a translator

  14. Resources for TERM 2 • Main Book: Andrew Appel – Modern Compiler Implementation in Java. There are many copies in the library. We will cover the first 100 or so pages. • Other Books: There are many books on Compilers – all are worth looking at for background. • Website: This forms the module hand book, as it has most of the teaching resources, the lecture plan, and the coursework • There are links to other resources from the website – an online book, and some other lecture notes • Lecture Slides, most tutorial/practical sheets and most answers to questions are all on the website. SOME OF THE LATER SLIDES / TUTORIALS WILL CHANGE.

  15. Resources for TERM 2 The MAIN practical tool for this term is JavaCup This is a PARSER-GENERATOR – we will use it to generate parsers automatically from syntax specifications

  16. Tutorial this week… Find the website http//scom.hud.ac.uk/scomtlm/cas380/ Work through the exercises in Week 1. These are REVISION. If you are happy with a question move on to the next. Some of the answers appear on the website.

More Related