The goal of this subject is that the students acquire the basic knowledge, competences and skills required to process documents exchanged in telematic applications. Both the traditional approach (language processing) and the XML approach are studied. The relation between XML document processing and classical language processing will also be discussed.
With respect to the knowledge the students should learn, at the end of the course, the student will be able to:
- Know the definitions of alphabet, string and language.
- Understand the parts in which a compiler is divided, the tasks that each part performs and the relations between the different parts.
- Know some formalisms to define languages: regular expressions and grammars
- Know the role of a lexer and how to specify it.
- Know the role of a parser and how to specify it.
- Know the how an LR(k) parser works.
- Know the definitions of attribute and synthesized and inherited attribute.
- Know how to specify an attribute.
- Know the XML language.
- Know the DTD format to define XML applications.
- Know the environment to process XML documents DOM.
With respect to specific instrumental competences, the students should be able to:
- Understand which is the language defined by a given regular expression or grammar.
- Write the specification for the lexer and the parser of a given language.
- Program the required Java classes that represent the abstract syntax trees corresponding to strings of a given language.
- Use analyzer generators.
- Implement a symbol table.
- Implement a synthesized or an inherited attribute, given its specification.
- Implement a type checker.
- Implement other checkings required by a semantic analyzer.
- Design and implement a code generator in Java.
- Decide whether an XML document is valid according to a given DTD.
- Write simple programs that process XML documents.
With respect to general competences, the student should show ability to:
- identify, formulate and solve engineering problems.
- use the techniques, skills and modern tools necessary for engineering practice.