MiniValgrind: простой детектор утечек памяти
Аннотация
В данной работе описывается учебный проект по созданию детектора утечек памяти для интерпретируемого языка. Этот проект ориентирован на студента или группу студентов второго курса. Он разрабатывался в качестве альтернативной формы отчетности по практическим занятиям курса «программирование».
В работе описывается постановка задачи, общая схема проекта, обсуждаются подзадачи и методы их решения. Рассматриваются все стадии проекта: разработка языка, построение интерпретатора, реализация детектора утечек памяти. Кроме того, в статье описывается опыт применения данного проекта в учебном процессе, полученный в осеннем семестре 2016 года. Код проекта доступен на сайте GitHub.
Литература
[2] A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman, Kompilyatory: printsipy, tekhnologii i instrumentarii [Compilers. Principles, Techniques, & Tools], Moscow, Russia: Williams, 2015 (in Russian).
[3] J. Levine, Flex & Bison, O’Reilly Media, 2009.
[4] G. A. Сhernishev, “Opyt provedeniya praktikumov po programmirovaniyu na matematiko-mekhanicheskom fakul'tete SPbGU” [Teaching Introductory Programming Course for Computer Programming Majors at the Department of Mathematics and Mechanics of Saint-Petersburg University], Computer tools in education journal, no. 6, pp. 43–66, 2015 (in Russian).
[5] E. Balakina, G. Chernishev, B. Novikov, A. Mukhin, G. Pervakov, K. Smirnov, A. Smirnova, and G. Zakharov, “Using Programming Contest in Teaching Introductory Programming Course: an Experience,” In Proc. of the 9th IEEE International Conference on UbiMedia Computing, Moscow, Russia, 2016, pp. 272–277.
[6] K. K. Smirnov and G. A. Сhernishev, “Uchastie v sorevnovanii ACM SIGMOD kak vozmozhnost' dlya studentov uglublenno izuchit' nekotorye aspekty baz dannykh i programmnoi inzhenerii” [ACM SIGMOD Programming Contest: an opportunity to study distinguished aspects of database systems and software engineering], Computer tools in education journal, no. 5, pp. 25–32, 2012 (in Russian).
[7] S. Miner, T. Pevzner, A. Deutsch, S. Baden, and P. Kube, “Building an XQuery Interpreter in a Compiler Construction Course,” SIGCSE Bull., vol. 37, no. 1, pp. 2–6, 2005. doi: 10.1145/1047344.1047363
[8] A. Sattar and T. Lorenzen, “Develop a Compiler in Java for a Compiler Design Course,” SIGCSE Bull., vol. 39, no. 2, pp. 80–82, 2007. doi: 10.1145/1272848.1272890
[9] D. Baldwin, “A Compiler for Teaching About Compilers,” SIGCSE Bull., vol. 35, no. 1, pp. 220–223, 2003. doi: 10.1145/611892.611974
[10] T. R. Henry, “Teaching Compiler Construction Using a Domain Specific Language,” SIGCSE Bull., vol. 37, no. 1, pp. 7–11, 2005. doi: 10.1145/1047344.1047364
[11] H. Luoma, E. Lahtinen, and H.-M. J’arvinen, “CLIP, a Command Line Interpreter for a Subset of C++,” In Proc. of the Seventh Baltic Sea Conference on Computing Education Research, Darlinghurst, Australia, vol. 88, 2007, pp. 199–202.
[12] A. N. Terekhov, “Instrumental'noe sredstvo obucheniya programmirovaniyu i tekhnike translyatsii” [Programming and compiler techniques educational tool], Computer tools in education journal, no. 1, pp. 36–47, 2015 (in Russian).
Copyright (c) 2017 Артем Михайлович Мухин, Георгий Алексеевич Чернышев
Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.
Материал публикуется под лицензией: