Presentation is loading. Please wait.

Presentation is loading. Please wait.

Generic Haskell Where to start from. Issues Touched Language Ideas Tools Pitfalls.

Similar presentations


Presentation on theme: "Generic Haskell Where to start from. Issues Touched Language Ideas Tools Pitfalls."— Presentation transcript:

1 Generic Haskell Where to start from

2 Issues Touched Language Ideas Tools Pitfalls

3 Language Ideas Truely generic programming Better class system Better error messages More “first classness” Better programming environments

4 Better Type System F2? Type inference wherever possible “No religion” approach Polymorphic recursion Accept non-termination of compiler Polymorphic parameters Existential types

5 Better class system Current system is worn out Overloading should be programmable Classes as first class objects API for type system?

6 Better Error Messages Current error messages of Hugs are below standard –Sometimes at the wrong place –Sometimes uninformative –Sometimes just too large –Not user programmable

7 More “First Classness” Modules Classes Types?

8 Tools we have created or are creating Parser Combinator Library Attribute Grammar System Pretty Printing Combinators Library for user definable syntax (small)

9 Parser Combinator Library Quite adequate Furher development in details of usage Basic interface is stable Research on explanation of what is going on Convert into parser generator (Vladimir Costas)

10 Attribute Grammar System (Current) No reason not to use it Provides modularity of language definitions Not written in itself (to be done) Error messages can be improved Support for list like structures

11 Attribute Grammar System (Arthur Baars) Strictification optimisations Transformations, while also transforming attribution rules Supporting different views Flexible to extend for newly encountered situations. Programmable patterns

12 Pretty Printing Combinators Can be used in editors and unparsings Provide insight in language design Editor construction (Martijn Schrage)

13 LRC (editor generator, history)) Can be used Is written in the wrong language Editor generation is laborious Works and is useable! Memoisation is supported

14 User defineable Syntax BExpr_And (BExpr_Or x y) (BExpr_Not (BExpr_And x y) ) => "either" x "or" y BExpr_Or (BExpr_Not x) y => "(" x "->" y ")"

15 Overall Goals Everything nicely documented Integrated documentation and motivation Usable, user friendly system Student proof and student digestable Lecturing material

16 Error Messages (Bastaan Heeren) Locate most probable error source Provide useful feedback Provide as much feedback as possible

17 Implementation Partial evaluation needed for sufficient speed Framework for global analyses needed Code generation for different machines through code generator generators

18 Pitfalls Algol68 syndrom –Do not try to include everything Perform many small experiments Just in time programming Extreme programming


Download ppt "Generic Haskell Where to start from. Issues Touched Language Ideas Tools Pitfalls."

Similar presentations


Ads by Google