ABSTRACT
This article, based on Doh, Kim, and Schmidt's "abstract parsing" technique, presents an abstract interpretation for statically checking the syntax of generated code in two-staged programs. Abstract parsing is a static analysis technique for checking the syntax of generated strings. We adopt this technique for two-staged programming languages and formulate it in the abstract interpretation framework. We parameterize our analysis with the abstract domain so that one can choose the abstract domain as long as it satisfies the condition we provide. We also present an instance of the abstract domain, namely an abstract parse stack and its widening with k-cutting.
- Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986. Google Scholar
Digital Library
- D. Ancona and E. Moggi. A fresh calculus for name management. In Proceedings of the International Conference on Generative Programming and Component Engineering, October 2004.Google Scholar
Cross Ref
- Jeroen Arnoldus, Jeanot Bijpost, and Mark van den Brand. Repleo: a syntax-safe template engine. In Proceedings of the International Conference on Generative Programming and Component Engineering, pages 25--32, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
- Cristiano Calcagno, Eugenio Moggi, and Tim Sheard. Closed types for a safe imperative MetaML. Journal of Functional Programming, 13(3), 2003. Google Scholar
Digital Library
- Cristiano Calcagno, Eugenio Moggi, and Walid Taha. ML-like inference for classifiers. In Proceedings of the European Symposium on Programming, pages 79--93. Springer, 2004.Google Scholar
Cross Ref
- Chiyan Chen and Hongwei Xi. Meta-programming through typeful code representation. In ACM International Conference on Functional Programming, pages 275--286. ACM, August 2003. Google Scholar
Digital Library
- Tae-Hyoung Choi, Oukseh Lee, Hyunha Kim, and Kyung-Goo Doh. A practical string analyzer by the widening approach. In Proceedings of the Asian Symposium on Programming Languages and Systems, volume 4729 of Lecture Notes in Computer Science, pages 374--388, Sydney, Austrailia, November 2006. Springer-Verlag. Google Scholar
Digital Library
- Aske Simon Christensen, Anders Mller, and Michael I. Schwartzbach. Precise analysis of string expressions. In Proceedings of the Static Analysis Symposium, pages 1--18. Springer-Verlag, 2003. Google Scholar
Digital Library
- Mihai Christodorescu, Nicholas Kidd, and Wen-Han Goh. String analysis for x86 binaries. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 88--95, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 238--252, Los Angeles, California, 1977. ACM Press, New York, NY. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 269--282, San Antonio, Texas, 1979. ACM Press, New York, NY. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511--547, 1992.Google Scholar
Cross Ref
- Rowan Davies. A temporal-logic approach to binding-time analysis. In Proceedings of the Symposium on Logic in Computer Science, pages 184--195. IEEE Computer Society Press, 1996. Google Scholar
Digital Library
- Rowan Davies and Frank Pfenning. A modal analysis of staged computation. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 258--270. ACM, 1996. Google Scholar
Digital Library
- Rowan Davies and Frank Pfenning. A modal analysis of staged computation. Journal of the ACM, 48(3):555--604, 2001. Google Scholar
Digital Library
- Kyung-Goo Doh, Hyunha Kim, and David Schmidt. Abstract parsing: static analysis of dynamically generated string out-put using LR-parsing technology. In Proceeeding of the International Static Analysis Symposium, 2009. Available from http://santos.cis.ksu.edu/schmidt/dohsas09.pdf. Google Scholar
Digital Library
- Dawson R. Engler, Wilson C. Hsieh, and M. Frans Kaashoek. 'C: a language for high-level, efficient, and machine-independent dynamic code generation. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 131--144, New York, NY, USA, 1996. ACM. Google Scholar
Digital Library
- Ik-Soon Kim, Kwangkeun Yi, and Cristiano Calcagno. A poly-morphic modal type system for lisp-like multi-staged languages. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 257--269, 2006. Google Scholar
Digital Library
- Yasuhiko Minamide. Static approximation of dynamically generated web pages. In Proceedings of the International Conference on World Wide Web, pages 432--441, New York, NY, USA, 2005. ACM. Google Scholar
Digital Library
- Yasuhiko Minamide and Akihiko Tozawa. Xml validation for context-free grammars. In Proceedings of the Asian Symposium on Programming Languages and Systems, pages 357--373. Springer-Verlag, 2006. Google Scholar
Digital Library
- Aleksandar Nanevski. Meta-programming with names and necessity. In ACM International Conference on Functional Programming, pages 206--217. ACM, October 2002. Google Scholar
Digital Library
- Aleksandar Nanevski and Frank Pfenning. Staged computation with names and necessity. Journal of Functional Programming, 15(6):893--939, 2005. Google Scholar
Digital Library
- Morten Rhiger. First-class open and closed code fragments. In Proceedings of the Symposium on Trends in Functional Programming, September 2005.Google Scholar
- Tim Sheard. Accomplishments and research challenges in meta-programming. In Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation, pages 2--44, London, UK, 2001. Springer-Verlag. Google Scholar
Digital Library
- Walid Taha and Michael Florentin Nielsen. Environment classifiers. In Proceedings of The ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM, 2003. Google Scholar
Digital Library
- Gary Wassermann, Carl Gould, Zhendong Su, and Premkumar Devanbu. Static checking of dynamically generated queries in database applications. ACM Transactions on Software Engineering and Methodology, 16(4):14, 2007. Google Scholar
Digital Library
- Gary Wassermann and Zhendong Su. Sound and precise analysis of web applications for injection vulnerabilities. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, pages 32--41, New York, NY, USA, 2007. ACM. Google Scholar
Digital Library
Index Terms
Abstract parsing for two-staged languages with concatenation
Recommendations
Abstract parsing for two-staged languages with concatenation
GPCE '09This article, based on Doh, Kim, and Schmidt's "abstract parsing" technique, presents an abstract interpretation for statically checking the syntax of generated code in two-staged programs. Abstract parsing is a static analysis technique for checking ...
Grammar semantics, analysis and parsing by abstract interpretation
We study abstract interpretations of a fixpoint protoderivation semantics defining the maximal derivations of a transitional semantics of context-free grammars akin to pushdown automata. The result is a hierarchy of bottom-up or top-down semantics ...
Guided parsing of range concatenation languages
ACL '01: Proceedings of the 39th Annual Meeting on Association for Computational LinguisticsThe theoretical study of the range concatenation grammar [RCG] formalism has revealed many attractive properties which may be used in NLP. In particular, range concatenation languages [RCL] can be parsed in polynomial time and many classical grammatical ...







Comments