Skip to main content

From Concrete Syntax to Abstract Syntax

  • Chapter
Programming Language Concepts

Part of the book series: Undergraduate Topics in Computer Science ((UTICS,volume 50))

  • 3740 Accesses

Abstract

Until now, we have written programs in abstract syntax, which is convenient when handling programs as data. However, programs are usually written in concrete syntax, as sequences of characters in a text file. So how do we get from concrete syntax to abstract syntax?

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Java compiler compiler (JavaCC). At http://javacc.java.net/

  2. Aho, A., Lam, M., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools, 2nd edn. Addison-Wesley, Reading (2006)

    Google Scholar 

  3. Aho, A.V., Hopcroft, J.E., Ullman, J.D.: The Design and Analysis of Computer Algorithms. Addison-Wesley, Reading (1974)

    MATH  Google Scholar 

  4. Burge, W.: Recursive Programming Techniques. Addison-Wesley, Reading (1975)

    MATH  Google Scholar 

  5. Ford, B.: Packrat parsing: simple, powerful, lazy, linear time. In: International Conference on Functional Programming, Pittsburgh, PA, pp. 36–47. ACM, New York (2002)

    Google Scholar 

  6. Ford, B.: Parsing expression grammars: a recognition-based syntactic foundation. In: Principles of Programming Languages, Venice, Italy, pp. 111–122. ACM, New York (2004)

    Google Scholar 

  7. Hopcroft, J.E., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading (1979)

    MATH  Google Scholar 

  8. Hutton, G.: Higher-order functions for parsing. J. Funct. Program. 2, 323–343 (1992). At http://www.cs.nott.ac.uk/~gmh/parsing.pdf

    Article  MathSciNet  MATH  Google Scholar 

  9. Johnson, S.C.: Yacc—yet another compiler-compiler. Computing Science Technical Report 32, Bell Laboratories (1975)

    Google Scholar 

  10. Knuth, D.E.: On the translation of languages from left to right. Inf. Control 8, 607–639 (1965)

    Article  MathSciNet  Google Scholar 

  11. Lesk, M.E.: Lex—a lexical analyzer generator. Computing Science Technical Report 39, Bell Laboratories (1975)

    Google Scholar 

  12. Mogensen, T.: Introduction to Compiler Design. Springer, Berlin (2011)

    Book  Google Scholar 

  13. Paulson, L.: ML for the Working Programmer, 2nd edn. Cambridge University Press, Cambridge (1996)

    Book  MATH  Google Scholar 

  14. Rabin, M.O., Scott, D.: Finite automata and their decision problems. IBM J. Res. Dev. 3, 114–125 (1959)

    Article  MathSciNet  Google Scholar 

  15. Scott, E., Johnstone, A.: GLL parsing. Electron. Notes Theor. Comput. Sci. 253, 177–189 (2010)

    Article  Google Scholar 

  16. Sestoft, P.: Grammars and parsing with Java. Tech. rep., KVL (1999). At http://www.itu.dk/people/sestoft/programmering/parsernotes.pdf

  17. Syme, D., Granicz, A., Cisternino, A.: Expert F#. Apress (2007)

    Google Scholar 

  18. Tolksdorf, S.: Fparsec. a parser combinator library for F#. Homepage. At http://www.quanttec.com/fparsec/

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag London

About this chapter

Cite this chapter

Sestoft, P. (2012). From Concrete Syntax to Abstract Syntax. In: Programming Language Concepts. Undergraduate Topics in Computer Science, vol 50. Springer, London. https://doi.org/10.1007/978-1-4471-4156-3_3

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-4156-3_3

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-4155-6

  • Online ISBN: 978-1-4471-4156-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics