next up previous
Next: Overview of the System Up: paper Previous: paper

Major topics to be covered:

The objective of this course is to exploit a project-based approach to study the design and implementation of programming languages. We will study a variety of languages including both static and dynamic languages, scripting languages and web-based interpreted languages. The primary deliverable of this course is a multi-lingual application that exploits a Facade Design Pattern to connect various phases of the system that we will construct. Knowledge of the languages, tools, and APIs that we use in this course is not a pre-requisite for the course.

Thus, part of the instruction for the course will be information about the languages and tools that we will use. This instruction will cover the syntax and semantics of Python, PyGame, XML, XSLT and C++. Python is an interpreted, prototyping language used for rapid system development and, in some cases, for scripting. C++ is a compiled, general-purpose language exploited for its object-orientation and for it's ability to produce small efficient code; C++ is recognized, by knowledgable people, as the fastest, most efficient programming language available today.

We will also use XML, a markup language for documents containing structured information. Structured information contains both content (words, pictures, etc.) and some indication of the role that the content plays in the system that uses the XML. For example, content in a section heading has a different meaning from content in a footnote; similarly, content in a footnote means something different from content in a figure caption or content in a database table. Almost all documents have some structure.

There are situations when we would like to be able to transform information marked up in XML from one vocabulary to another. Two W3C Recommendations, XSLT (the Extensible Stylesheet Language Transformations) and XPath (the XML Path Language), meet this need. They provide a powerful implementation of a tree-oriented transformation language for transmuting instances of XML using one vocabulary into either simple text, the legacy HTML vocabulary, or XML instances using any other vocabulary imaginable. We use the XSLT language, which itself uses XPath, to specify how an implementation of an XSLT processor can be used to create our desired output from the given marked-up input. XSLT enables and empowers interoperability among cooporating languages and components and we will exploit this interoperability in the application that we will develop.

Figure 1: System Overview This figure illustrates interoperability between two cooporating systems using a Facade.
1#1


next up previous
Next: Overview of the System Up: paper Previous: paper
Brian Malloy 2009-07-01