Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/11737414_4guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Ruler: programming type rules

Published: 24 April 2006 Publication History

Abstract

Some type systems are first described formally, to be sometimes followed by an implementation. Other type systems are first implemented as language extensions, to be sometimes retrofitted with a formal description. In neither case it is an easy task to keep both artefacts consistent. In this paper we introduce Ruler, a domain specific language for describing type rules. Type rules can be incrementally described, thus providing a means for building complex type systems on top of simpler ones. Besides checking well-formedness of Ruler programs we use them to generate (1) a visual LATEX rendering, suitable for use in the presentation of formal aspects, and (2) an attribute grammar based implementation. Combining these two aspects in Ruler contributes to bridging the gap between theory and practice: mutually consistent representations can be generated for use in both theoretical and practical settings.

References

[1]
Projet CROAP. Design and Implementaiton of Programming Tools. http://www-sop. inria.fr/croap/, 1999.
[2]
Hugs 98. http://www.haskell.org/hugs/, 2003.
[3]
ASF+SDF. http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ ASF+SDF, 2005.
[4]
Literate Programming. http://www.literateprogramming.com/, 2005.
[5]
Brian E. Aydemir, Aaron Bohannon, Matthew Fairbairn, J. Nathan Foster, and Benjamin C. Pierce. Mechanized metatheory for the masses: The POPLmark challenge. In The 18th International Conference on Theorem Proving in Higher Order Logics, 2005.
[6]
Atze Dijkstra. EHC Web. http://www.cs.uu.nl/groups/ST/Ehc/WebHome, 2004.
[7]
Atze Dijkstra. Stepping through Haskell. PhD thesis, Utrecht University, Department of Information and Computing Sciences, 2005.
[8]
Atze Dijkstra and S. Doaitse Swierstra. Typing Haskell with an Attribute Grammar. In Advanced Functional Programming Summerschool, number 3622 in LNCS. Springer-Verlag, 2004.
[9]
Atze Dijkstra and S.Doaitse Swierstra.Making Implicit Parameters Explicit. Technical report, Utrecht University, 2005.
[10]
Dominic Duggan and John Ophel. Type-Checking Multi-Parameter Type Classes. Journal of Functional Programming, 2002.
[11]
Karl-Filip Faxen. A Static Semantics for Haskell. Journal of Functional Programming, 12(4):295, 2002.
[12]
GrammaTech. Synthesizer Generator. http://www.grammatech.com/products/ sg/overview.html, 2005.
[13]
Robert Harper. Mechanizing Language Definitions (invited lecture at ICFP05). http://www.cs.cmu.edu/~rwh/, 2005.
[14]
Bastiaan Heeren and Jurriaan Hage. Type Class Directives. In Seventh International Symposium on Practical Aspects of Declarative Languages, pages 253 - 267. Springer-Verlag, 2005.
[15]
Bastiaan Heeren, Jurriaan Hage, and S. Doaitse Swierstra. Generalizing Hindley-Milner Type Inference Algorithms. Technical Report UU-CS-2002-031, Institute of Information and Computing Science, University Utrecht, Netherlands, 2002.
[16]
Mark P. Jones. Qualified Types, Theory and Practice. Cambridge Univ. Press, 1994.
[17]
Mark P. Jones. Typing Haskell in Haskell. http://www.cse.ogi.edu/~mpj/thih/, 2000.
[18]
Michael Y. Levin and Benjamin C. Pierce. TinkerType: A Language for Playing with Formal Systems. http://www.cis.upenn.edu/~milevin/tt.html, 1999.
[19]
Simon Marlow. The Glasgow Haskell Compiler. http://www.haskell.org/ghc/, 2004.
[20]
Simon Peyton Jones. Haskell 98, Language and Libraries, The Revised Report. Cambridge Univ. Press, 2003.
[21]
Simon Peyton Jones, Mark Jones, and ErikMeijer. Type classes: an exploration of the design space. In Haskell Workshop, 1997.
[22]
Benjamin C. Pierce. Types and Programming Languages. MIT Press, 2002.
[23]
Rob Simmons. The Twelf Project (Wiki Home). http://fp.logosphere.cs.cmu. edu/twelf/, 2005.
[24]
Eelco Visser. Stratego Home Page. http://www.program-transformation.org/ Stratego/WebHome, 2005.

Cited By

View all
  • (2013)Implementing Java-like languages in Xtext with XsemanticsProceedings of the 28th Annual ACM Symposium on Applied Computing10.1145/2480362.2480654(1559-1564)Online publication date: 18-Mar-2013
  • (2012)Run your researchProceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/2103656.2103691(285-296)Online publication date: 25-Jan-2012
  • (2012)Run your researchACM SIGPLAN Notices10.1145/2103621.210369147:1(285-296)Online publication date: 25-Jan-2012
  • Show More Cited By

Index Terms

  1. Ruler: programming type rules
    Index terms have been assigned to the content through auto-classification.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    FLOPS'06: Proceedings of the 8th international conference on Functional and Logic Programming
    April 2006
    293 pages
    ISBN:3540334386

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 24 April 2006

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 13 Sep 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2013)Implementing Java-like languages in Xtext with XsemanticsProceedings of the 28th Annual ACM Symposium on Applied Computing10.1145/2480362.2480654(1559-1564)Online publication date: 18-Mar-2013
    • (2012)Run your researchProceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/2103656.2103691(285-296)Online publication date: 25-Jan-2012
    • (2012)Run your researchACM SIGPLAN Notices10.1145/2103621.210369147:1(285-296)Online publication date: 25-Jan-2012
    • (2011)A DSL for writing type systems for Xtext languagesProceedings of the 9th International Conference on Principles and Practice of Programming in Java10.1145/2093157.2093163(31-40)Online publication date: 24-Aug-2011
    • (2010)Iterative type inference with attribute grammarsACM SIGPLAN Notices10.1145/1942788.186830246:2(43-52)Online publication date: 10-Oct-2010
    • (2010)Iterative type inference with attribute grammarsProceedings of the ninth international conference on Generative programming and component engineering10.1145/1868294.1868302(43-52)Online publication date: 10-Oct-2010
    • (2009)The architecture of the Utrecht Haskell compilerProceedings of the 2nd ACM SIGPLAN symposium on Haskell10.1145/1596638.1596650(93-104)Online publication date: 3-Sep-2009
    • (2009)Strategies for Solving Constraints in Type and Effect SystemsElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2009.03.021236(163-183)Online publication date: 1-Apr-2009
    • (2007)OttACM SIGPLAN Notices10.1145/1291220.129115542:9(1-12)Online publication date: 1-Oct-2007
    • (2007)OttProceedings of the 12th ACM SIGPLAN international conference on Functional programming10.1145/1291151.1291155(1-12)Online publication date: 3-Oct-2007

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media