160 likes | 344 Views
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.
E N D
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.
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 !
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
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 ??????????
Interpreters • Are commonly known language translators What is the difference between Interpreters and Compilers?
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..
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
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) ….
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
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
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
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.
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
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.