Exercise Generation on Language Specification
Exercise generation on language specification is a challenging problem, because of the richness of the objects in the domain. In this paper we discuss Mgbeg (Meta-Grammar-Based Exercise Generator) – a toolkit for exercise generation on context-free languages. Mgbeg approach is based on a meta-grammar formalism and tool, used to define a set of similar exercises. Mgbeg is simple attributed grammar used to describe the set of valid exercise (and randomly generate one of them). Each exercise typically contains several attributes calculated during the generation steps: namely, one or more formal specification of the language (context free grammar); the exercise statement; other information such as examples, common mistakes, validation data, to be used in the construction of the exercise statement, solution, and assessment steps. Complementary the toolkit provides a grammar module, with functionality for grammar comparison, sentence generation and recognition; a template engine (to help in textual attributes calculation).
The work of Eliana Grande was supported by PIQ IF Goiano through the fellowship no. 02/2013. The work of J.J. Almeida was supported by COMPETE: POCI-01-0145-FEDER-007043 and FCT – Fundação para a Ciência e Tecnologia within the Project Scope: UID/CEC/00319/2013.
- 2.Almeida, J., Araújo, I., Brito, I., Carvalho, N., Machado, G.J., Pereira, R.M., Smirnov, G.: Math exercise generation and smart assessment. In: Workshop of TICAMES (Information and Communication Technology in Higher Education: Learning Mathematics), CISTI-2013, pp. 1014–1019 (2013)Google Scholar
- 3.Almeida, J.J., Grande, E., Smirnov, G.: Context-free grammars: exercise generation and probabilistic assessment. In: 5th Symposium on Languages, Applications and Technologies (SLATE 2016), OpenAccess Series in Informatics (OASIcs), vol. 51, pp. 1–8. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik (2016)Google Scholar
- 5.Donnelly, C., Stallman, R.: Bison: the YACC-compatible parser generator. Technical report, GNU (2004)Google Scholar
- 6.Eisenbach, A.: phpSyntaxTree - drawing syntax trees made easy, Tool page (2015). http://ironcreek.net/phpsyntaxtree/
- 7.Hasebe, Y.: RSyntaxTree - yet another syntax tree generator made with ruby and RMagick, Tool page (2016). http://yohasebe.com/rsyntaxtree/
- 8.Jackson, Q.T.: Disambiguation as a quantifiable computational process. Technical report 3 (2000). https://www.researchgate.net/publication/2401401_Disambiguation_as_a_Quantifiable_Computational_Process
- 9.José Neto, J.: Introdução à compilação. Livros Técnicos e Científicos, Rio de Janeiro (2016)Google Scholar