Presentation is loading. Please wait.

Presentation is loading. Please wait.

Compilation 2007 What Have We Learned? Michael I. Schwartzbach BRICS, University of Aarhus.

Similar presentations


Presentation on theme: "Compilation 2007 What Have We Learned? Michael I. Schwartzbach BRICS, University of Aarhus."— Presentation transcript:

1 Compilation 2007 What Have We Learned? Michael I. Schwartzbach BRICS, University of Aarhus

2 2 What Have We Learned? What Have You Had the Chance to Learn  Concrete skills: compiler technology insights into programming language design  Technical skills: all about Java building and testing software on a larger scale reading huge and complex specifications  Organizational skills: handling stress and deadlines finding relevant help and information surviving as a group

3 3 What Have We Learned? Compiler Technology  Compiler architecture  Typical compiler phases  Scanners and parsers  Scope resolvers  Type checkers  Static analyzers  Code templates  You can build your own compiler

4 4 What Have We Learned? Programming Language Design  The interplay between languages and compilers  Features that are difficult to implement  Limitations of current technology  Scope rules  Type rules  Consequences of undecidability  You can discuss language design intelligently  You can design another language

5 5 What Have We Learned? All About Java  The subtleties of the Java specification  Name resolution  Hierarchy checks  Type checking  Static analysis  JVM and verification  Code templates  You are a Java expert, not merely a user

6 6 What Have We Learned? All About Java  The subtleties of the Java specification  Name resolution  Hierarchy checks  Type checking  Static analysis  JVM and verification  Code templates  You are a Java expert, not merely a user

7 7 What Have We Learned? Building and Testing Software  10,000 lines of code handed in  203,742 lines for 22 groups [6,381..14,538]  Code sharing and versioning ( cvs )  Unit testing  Auto-generated code  Visitor patterns  Aspects  Debugging  You can handle a complex piece of software

8 8 What Have We Learned? Reading Complex Specifications  The Java Language Specification (25,000 lines)  The JVM Specification (24,000 lines)  The SableCC specification (too few lines)  The Joos Languages  6 complex and subtle hand-in specifications  You can read huge and complex specs

9 9 What Have We Learned? Handling Stress and Deadlines  You have met 7 hard deadlines  Deadlines are a way of life, not a sudden crisis  Balancing ambitions with resources  Realistic estimations of work load  Getting started in time  You are better at facing stress and deadlines

10 10 What Have We Learned? Finding Help and Information  Specifications may be missing or unclear  Don't panic!  Help is available from many sources  RTFM  Help each other  Use weekly consulting productively  Ask useful questions on the phorum  You are better at finding help and information

11 11 What Have We Learned? Surviving as a Group  Group work is a challenge  Negotiating ambitions  Exploiting different skills  Setting aside your ego  Respecting internal deadlines  Ensuring your own outcome  You have more experience in group work

12 12 What Have We Learned? A Large Tool to Solve a Large Problem  The project is much larger that that of comparable courses at other institutions  This is made possible by: big technology explicit phase slicing the online test tool  Pros: more fun, more instructive, more real  Cons: possibly confusing (compared to a C0 compiler)

13 13 What Have We Learned? Status After the Course  You have these nice new competences  You have an experience to look back on  You should be proud of yourselves  You probably know now whether you like compilers and programming languages

14 14 What Have We Learned? Want More?  Look for courses by: Michael Schwartzbach Anders Møller Olivier Danvy Erik Ernst Klaus Ostermann  Spring 2008: Static Analysis (Q3) Software Verification (Q4) Types in Object-Oriented Languages (Q4)

15 15 What Have We Learned? Want Even More?  Michael and Anders as thesis advisors: A domain-specific language for Web surfing (2007) Type checking for Javascript (2007) Static analysis for Java servlets and JSP (2007) Analysis of SAX applications (2007) Contracts for Web service development (2004 + 2006) Static validation of XSLT (2004 + 2006) Understanding shape analysis (2005) Specification and validation of Web services (2004) Extensible syntax transformation (2003) Automatic validation of Web forms (2002) Static bounds on memory usage in Java (2002)

16 16 What Have We Learned? Want Even More?  Michael and Anders as thesis advisors: A domain-specific language for Web surfing (2007) Type checking for Javascript (2007) Static analysis for Java servlets and JSP (2007) Analysis of SAX applications (2007) Contracts for Web service development (2004 + 2006) Static validation of XSLT (2004 + 2006) Understanding shape analysis (2005) Specification and validation of Web services (2004) Extensible syntax transformation (2003) Automatic validation of Web forms (2002) Static bounds on memory usage in Java (2002)

17 17 What Have We Learned? Want Still More?  PhD studies  4+4 model starts after 4 years of study  But talk to us early (now?), if you are interested  Ongoing project with student programmers


Download ppt "Compilation 2007 What Have We Learned? Michael I. Schwartzbach BRICS, University of Aarhus."

Similar presentations


Ads by Google