{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,14]],"date-time":"2026-01-14T23:04:59Z","timestamp":1768431899753,"version":"3.49.0"},"reference-count":82,"publisher":"National Library of Serbia","issue":"1","license":[{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["ComSIS","COMPUT SCI INF SYST","COMPUT SCI INFORM SY","COMPUTER SCI INFORM","COMSIS J"],"published-print":{"date-parts":[[2024]]},"abstract":"<jats:p>Static source code analysis techniques are gaining relevance in automated assessment of programming assignments as they can provide less rigorous evaluation and more comprehensive and formative feedback. These techniques focus on source code aspects rather than requiring effective code execution. To this end, syntactic and semantic information encoded in textual data is typically represented internally as graphs, after parsing and other preprocessing stages. Static automated assessment techniques, therefore, draw inferences from intermediate representations to determine the correctness of a solution and derive feedback. Consequently, achieving the most effective semantic graph representation of source code for the specific task is critical, impacting both techniques? accuracy, outcome, and execution time. This paper aims to provide a thorough comparison of the most widespread semantic graph representations for the automated assessment of programming assignments, including usage examples, facets, and costs for each of these representations. A benchmark has been conducted to assess their cost using the Abstract Syntax Tree (AST) as a baseline. The results demonstrate that the Code Property Graph (CPG) is the most feature-rich representation, but also the largest and most space-consuming (about 33% more than AST).<\/jats:p>","DOI":"10.2298\/csis230615004p","type":"journal-article","created":{"date-parts":[[2024,1,22]],"date-time":"2024-01-22T08:45:19Z","timestamp":1705913119000},"page":"117-142","source":"Crossref","is-referenced-by-count":2,"title":["Comparing semantic graph representations of source code: The case of automatic feedback on programming assignments"],"prefix":"10.2298","volume":"21","author":[{"suffix":"Carlos","given":"Jos\u00e9","family":"Paiva","sequence":"first","affiliation":[{"name":"CRACS - INESC TEC Porto, Portugal + DCC - FCUP Porto, Portugal"}]},{"suffix":"Paulo","given":"Jos\u00e9","family":"Leal","sequence":"additional","affiliation":[{"name":"CRACS - INESC TEC Porto, Portugal + DCC - FCUP Porto, Portugal"}]},{"given":"\u00c1lvaro","family":"Figueira","sequence":"additional","affiliation":[{"name":"CRACS - INESC TEC Porto, Portugal + DCC - FCUP Porto, Portugal"}]}],"member":"1078","reference":[{"key":"ref1","doi-asserted-by":"crossref","unstructured":"Allamanis, M., Barr, E.T., Bird, C., Sutton, C.: Suggesting accurate method and class names. In: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering. p. 38-49. ESEC\/FSE 2015, Association for Computing Machinery, New York, NY, USA (2015), https:\/\/doi.org\/10.1145\/2786805.2786849","DOI":"10.1145\/2786805.2786849"},{"key":"ref2","unstructured":"Allamanis, M., Brockschmidt, M., Khademi, M.: Learning to represent programs with graphs (2018)"},{"key":"ref3","doi-asserted-by":"crossref","unstructured":"Allen, F.E.: Control flow analysis. In: Proceedings of a Symposium on Compiler Optimization. p. 1-19. Association for Computing Machinery, New York, NY, USA (1970), https:\/\/doi.org\/10.1145\/800028.808479","DOI":"10.1145\/800028.808479"},{"key":"ref4","doi-asserted-by":"crossref","unstructured":"Alon, U., Zilberstein, M., Levy, O., Yahav, E.: A general path-based representation for predicting program properties. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation. p. 404-419. PLDI 2018, Association for Computing Machinery, New York, NY, USA (2018), https:\/\/doi.org\/10.1145\/3192366.3192412","DOI":"10.1145\/3192366.3192412"},{"key":"ref5","doi-asserted-by":"crossref","unstructured":"AlShamsi, F., Elnagar, A.: An automated assessment and reporting tool for introductory java programs. In: 2011 International Conference on Innovations in Information Technology. pp. 324-329. IEEE, Abu Dhabi, United Arab Emirates (April 2011)","DOI":"10.1109\/INNOVATIONS.2011.5893842"},{"key":"ref6","doi-asserted-by":"crossref","unstructured":"Arabnejad, H., Bispo, J., Cardoso, J.M.P., Barbosa, J.G.: Source-to-source compilation targeting OpenMP-based automatic parallelization of c applications. The Journal of Supercomputing 76(9), 6753-6785 (Dec 2019), https:\/\/doi.org\/10.1007\/s11227-019-03109-9","DOI":"10.1007\/s11227-019-03109-9"},{"key":"ref7","doi-asserted-by":"crossref","unstructured":"Arora, V., Bhatia, R.K., Singh, M.P.: Evaluation of flow graph and dependence graphs for program representation. International Journal of Computer Applications 56, 18-23 (2012)","DOI":"10.5120\/8959-3161"},{"key":"ref8","doi-asserted-by":"crossref","unstructured":"Binkley, D.: Interprocedural constant propagation using dependence graphs and a data-flow model. In: Fritzson, P.A. (ed.) Compiler Construction. pp. 374-388. Springer Berlin Heidelberg, Berlin, Heidelberg (1994)","DOI":"10.1007\/3-540-57877-3_25"},{"key":"ref9","doi-asserted-by":"crossref","unstructured":"Bouajjani, A., Esparza, J., Touili, T.: A generic approach to the static analysis of concurrent programs with procedures. In: Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. p. 62-73. POPL \u201903, Association for Computing Machinery, New York, NY, USA (2003), https:\/\/doi.org\/10.1145\/604131.604137","DOI":"10.1145\/604131.604137"},{"key":"ref10","doi-asserted-by":"crossref","unstructured":"Chae, D.K., Ha, J., Kim, S.W., Kang, B., Im, E.G.: Software plagiarism detection: A graphbased approach. In: Proceedings of the 22nd ACM International Conference on Information & Knowledge Management. p. 1577-1580. CIKM \u201913, Association for Computing Machinery, New York, NY, USA (2013), https:\/\/doi.org\/10.1145\/2505515.2507848","DOI":"10.1145\/2505515.2507848"},{"key":"ref11","doi-asserted-by":"crossref","unstructured":"Cheers, H., Lin, Y.: A novel graph-based program representation for java code plagiarism detection. In: Proceedings of the 3rd International Conference on Software Engineering and Information Management. p. 115-122. ICSIM \u201920, Association for Computing Machinery, New York, NY, USA (2020), https:\/\/doi.org\/10.1145\/3378936.3378960","DOI":"10.1145\/3378936.3378960"},{"key":"ref12","doi-asserted-by":"crossref","unstructured":"Chen, P., Liu, J., Chen, H.: Matryoshka: Fuzzing deeply nested branches. In: Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security. p. 499-513. CCS \u201919, Association for Computing Machinery, New York, NY, USA (2019), https:\/\/doi.org\/10.1145\/3319535.3363225","DOI":"10.1145\/3319535.3363225"},{"key":"ref13","doi-asserted-by":"crossref","unstructured":"DeFreez, D., Thakur, A.V., Rubio-Gonz\u00e1lez, C.: Path-based function embedding and its application to error-handling specification mining. In: Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. p. 423-433. ESEC\/FSE 2018, Association for Computing Machinery, New York, NY, USA (2018), https:\/\/doi.org\/10.1145\/3236024.3236059","DOI":"10.1145\/3236024.3236059"},{"key":"ref14","unstructured":"Devlin, J., Uesato, J., Singh, R., Kohli, P.: Semantic code repair using neuro-symbolic transformation networks (2017)"},{"key":"ref15","unstructured":"Dinella, E., Dai, H., Li, Z., Naik, M., Song, L., Wang, K.: Hoppity: Learning graph transformations to detect and fix bugs in programs. In: 8th International Conference on Learning Representations. OpenReview.net, Addis Ababa, Ethiopia (April 2020), https:\/\/openreview.net\/forum?id=SJeqs6EFvB"},{"key":"ref16","doi-asserted-by":"crossref","unstructured":"Du, X., Chen, B., Li, Y., Guo, J., Zhou, Y., Liu, Y., Jiang, Y.: Leopard: Identifying vulnerable code for vulnerability assessment through program metrics. In: Proceedings of the 41st International Conference on Software Engineering. p. 60-71. ICSE \u201919, IEEE Press, Montreal, Quebec, Canada (2019), https:\/\/doi.org\/10.1109\/ICSE.2019.00024","DOI":"10.1109\/ICSE.2019.00024"},{"key":"ref17","doi-asserted-by":"crossref","unstructured":"Du, Y., Wang, J., Li, Q.: An android malware detection approach using community structures of weighted function call graphs. IEEE Access 5, 17478-17486 (Jun 2017)","DOI":"10.1109\/ACCESS.2017.2720160"},{"key":"ref18","doi-asserted-by":"crossref","unstructured":"Duan, Y., Li, X.,Wang, J., Yin, H.: DeepBinDiff: Learning program-wide code representations for binary diffing. In: Proceedings 2020 Network and Distributed System Security Symposium. Internet Society, San Diego, CA, USA (2020), https:\/\/doi.org\/10.14722\/ndss.2020.24311","DOI":"10.14722\/ndss.2020.24311"},{"key":"ref19","doi-asserted-by":"crossref","unstructured":"Eder, S., Junker, M., J\u00fcrgens, E., Hauptmann, B., Vaas, R., Prommer, K.H.: How much does unused code matter for maintenance? In: 2012 34th International Conference on Software Engineering (ICSE). pp. 1102-1111. IEEE, Zurich, Switzerland (June 2012)","DOI":"10.1109\/ICSE.2012.6227109"},{"key":"ref20","doi-asserted-by":"crossref","unstructured":"Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems 9(3), 319-349 (Jul 1987), https:\/\/doi.org\/10.1145\/24039.24041","DOI":"10.1145\/24039.24041"},{"key":"ref21","unstructured":"Fraunhofer AISEC: Code property graph. https:\/\/github.com\/Fraunhofer-AISEC\/cpg (2022)"},{"key":"ref22","doi-asserted-by":"crossref","unstructured":"Galindo, C., P\u00e9rez, S., Silva, J.: Slicing unconditional jumps with unnecessary control dependencies. In: Fern\u00e1ndez, M. (ed.) Logic-Based Program Synthesis and Transformation. pp. 293-308. Springer International Publishing, Cham (2021)","DOI":"10.1007\/978-3-030-68446-4_15"},{"key":"ref23","doi-asserted-by":"crossref","unstructured":"Ge, X., Pan, Y., Fan, Y., Fang, C.: Amdroid: Android malware detection using function call graphs. In: 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C). pp. 71-77. IEEE, Sofia, Bulgaria (July 2019)","DOI":"10.1109\/QRS-C.2019.00027"},{"key":"ref24","doi-asserted-by":"crossref","unstructured":"Gulwani, S., Radi\u02c7cek, I., Zuleger, F.: Automated clustering and program repair for introductory programming assignments. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation. p. 465-480. PLDI 2018, Association for Computing Machinery, New York, NY, USA (2018), https:\/\/doi.org\/10.1145\/3192366.3192387","DOI":"10.1145\/3192366.3192387"},{"key":"ref25","unstructured":"Harer, J.A., Kim, L.Y., Russell, R.L., Ozdemir, O., Kosta, L.R., Rangamani, A., Hamilton, L.H., Centeno, G.I., Key, J.R., Ellingwood, P.M., McConley, M.W., Opper, J.M., Chin, S.P., Lazovich, T.: Automated software vulnerability detection with machine learning. CoRR abs\/1803.04497 (2018), http:\/\/arxiv.org\/abs\/1803.04497"},{"key":"ref26","unstructured":"Hellendoorn, V.J., Sutton, C., Singh, R., Maniatis, P., Bieber, D.: Global relational models of source code. In: 8th International Conference on Learning Representations. OpenReview.net, Addis Ababa, Ethiopia (Apr 2020), https:\/\/openreview.net\/forum?id=B1lnbRNtwr"},{"key":"ref27","doi-asserted-by":"crossref","unstructured":"Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. In: Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation. p. 35-46. PLDI \u201988, Association for Computing Machinery, New York, NY, USA (1988), https:\/\/doi.org\/10.1145\/53990.53994","DOI":"10.1145\/53990.53994"},{"key":"ref28","doi-asserted-by":"crossref","unstructured":"Horwitz, S.: Identifying the semantic and textual differences between two versions of a program. In: Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation. p. 234-245. PLDI \u201990, Association for Computing Machinery, New York, NY, USA (1990), https:\/\/doi.org\/10.1145\/93542.93574","DOI":"10.1145\/93542.93574"},{"key":"ref29","doi-asserted-by":"crossref","unstructured":"Huo, X., Li, M., Zhou, Z.H.: Control flow graph embedding based on multi-instance decomposition for bug localization. Proceedings of the AAAI Conference on Artificial Intelligence 34(04), 4223-4230 (Apr 2020), https:\/\/ojs.aaai.org\/index.php\/AAAI\/article\/view\/5844","DOI":"10.1609\/aaai.v34i04.5844"},{"key":"ref30","unstructured":"Iyer, R.G., Sun, Y., Wang, W., Gottschlich, J.: Software language comprehension using a program-derived semantics graph. CoRR abs\/2004.00768 (2020), https:\/\/arxiv.org\/abs\/2004.00768"},{"key":"ref31","doi-asserted-by":"crossref","unstructured":"vahab karuthedath, A., Vijayan, S., S, V.K.K.: System dependence graph based test case generation for object oriented programs. In: 2020 International Conference on Power, Instrumentation, Control and Computing (PICC). pp. 1-6. IEEE, Thrissur, India (Dec 2020), https:\/\/doi.org\/10.1109\/picc51425.2020.9362460","DOI":"10.1109\/PICC51425.2020.9362460"},{"key":"ref32","doi-asserted-by":"crossref","unstructured":"Kyrilov, A., Noelle, D.C.: Binary instant feedback on programming exercises can reduce student engagement and promote cheating. In: Proceedings of the 15th Koli Calling Conference on Computing Education Research. p. 122-126. Koli Calling \u201915, Association for Computing Machinery, New York, NY, USA (2015), https:\/\/doi.org\/10.1145\/2828959.2828968","DOI":"10.1145\/2828959.2828968"},{"key":"ref33","unstructured":"L\u00e9vai, T., N\u00e9meth, F., Raghavan, B., R\u00e9tv\u00e1ri, G.: Batchy: Batch-scheduling data flow graphs with service-level objectives. In: Bhagwan, R., Porter, G. (eds.) 17th USENIX Symposium on Networked Systems Design and Implementation. pp. 633-649. USENIX Association, Santa Clara, CA, USA (Feb 2020), https:\/\/www.usenix.org\/conference\/nsdi20\/presentation\/levai"},{"key":"ref34","doi-asserted-by":"crossref","unstructured":"Li, W., Saidi, H., Sanchez, H., Sch\u00e4f, M., Schweitzer, P.: Detecting similar programs via the weisfeiler-leman graph kernel. In: Kapitsaki, G.M., Santana de Almeida, E. (eds.) Software Reuse: Bridging with Social-Awareness. pp. 315-330. Springer International Publishing, Cham (2016)","DOI":"10.1007\/978-3-319-35122-3_21"},{"key":"ref35","doi-asserted-by":"crossref","unstructured":"Liu, C., Chen, C., Han, J., Yu, P.S.: Gplag: Detection of software plagiarism by program dependence graph analysis. In: Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. p. 872-881. KDD \u201906, Association for Computing Machinery, New York, NY, USA (2006), https:\/\/doi.org\/10.1145\/1150402.1150522","DOI":"10.1145\/1150402.1150522"},{"key":"ref36","doi-asserted-by":"crossref","unstructured":"Malik, R.S., Patra, J., Pradel, M.: Nl2type: Inferring javascript function types from natural language information. In: 2019 IEEE\/ACM 41st International Conference on Software Engineering (ICSE). pp. 304-315. IEEE, Montreal, QC, Canada (May 2019)","DOI":"10.1109\/ICSE.2019.00045"},{"key":"ref37","doi-asserted-by":"crossref","unstructured":"Mantyla, M., Vanhanen, J., Lassenius, C.: A taxonomy and an initial empirical study of bad smells in code. In: International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. pp. 381-384. IEEE, Amsterdam, Netherlands (Sep 2003)","DOI":"10.1109\/ICSM.2003.1235447"},{"key":"ref38","unstructured":"Mehrotra, N., Agarwal, N., Gupta, P., Anand, S., Lo, D., Purandare, R.: Modeling functional similarity in source code with graph-based siamese networks (2020)"},{"key":"ref39","doi-asserted-by":"crossref","unstructured":"Mousavinasab, E., Zarifsanaiey, N., Kalhori, S.R.N., Rakhshan, M., Keikha, L., Saeedi, M.G.: Intelligent tutoring systems: a systematic review of characteristics, applications, and evaluation methods. Interactive Learning Environments 29(1), 142-163 (2021), https:\/\/doi.org\/10.1080\/10494820.2018.1558257","DOI":"10.1080\/10494820.2018.1558257"},{"key":"ref40","doi-asserted-by":"crossref","unstructured":"M\u00fcller-Olm, M., Seidl, H.: Precise interprocedural analysis through linear algebra. In: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. p. 330-341. POPL \u201904, Association for Computing Machinery, New York, NY, USA (2004), https:\/\/doi.org\/10.1145\/964001.964029","DOI":"10.1145\/964001.964029"},{"key":"ref41","doi-asserted-by":"crossref","unstructured":"Naud\u00e9, K.A., Greyling, J.H., Vogts, D.: Marking student programs using graph similarity. Computers & Education 54(2), 545 - 561 (2010), http:\/\/www.sciencedirect.com\/science\/article\/pii\/S0360131509002450","DOI":"10.1016\/j.compedu.2009.09.005"},{"key":"ref42","doi-asserted-by":"crossref","unstructured":"Obbink, N.G., Malavolta, I., Scoccia, G.L., Lago, P.: An extensible approach for taming the challenges of javascript dead code elimination. In: 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). pp. 291-401. IEEE, Campobasso, Italy (March 2018)","DOI":"10.1109\/SANER.2018.8330226"},{"key":"ref43","doi-asserted-by":"crossref","unstructured":"Paiva, J.C., Leal, J.P., Figueira, \u00c1 .: Automated assessment in computer science education: A state-of-the-art review. ACM Trans. Comput. Educ. (jan 2022), https:\/\/doi.org\/10.1145\/3513140, just Accepted","DOI":"10.1145\/3513140"},{"key":"ref44","doi-asserted-by":"crossref","unstructured":"Paiva, J.C., Leal, J.P., Figueira, \u00c1 .: Progpedia: Collection of source-code submitted to introductory programming assignments. Data in Brief 46, 108887 (2023), https:\/\/www.sciencedirect.com\/science\/article\/pii\/S2352340923000057","DOI":"10.1016\/j.dib.2023.108887"},{"key":"ref45","unstructured":"Pereira, N., Pereira, M.J.V., Henriques, P.R.: Comment-based Concept Location over System Dependency Graphs. In: Pereira, M.J.V., Leal, J.P., Sim\u00f5es, A. (eds.) 3rd Symposium on Languages, Applications and Technologies. OpenAccess Series in Informatics (OASIcs), vol. 38, pp. 51-58. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany (2014), http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2014\/4558"},{"key":"ref46","doi-asserted-by":"crossref","unstructured":"Podgurski, A., Clarke, L.: The implications of program dependencies for software testing, debugging, and maintenance. In: Proceedings of the ACM SIGSOFT \u201989 Third Symposium on Software Testing, Analysis, and Verification. p. 168-178. TAV3, Association for Computing Machinery, New York, NY, USA (1989), https:\/\/doi.org\/10.1145\/75308.75328","DOI":"10.1145\/75308.75328"},{"key":"ref47","doi-asserted-by":"crossref","unstructured":"Pradel, M., Gousios, G., Liu, J., Chandra, S.: Typewriter: Neural type prediction with searchbased validation. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. p. 209-220. ESEC\/FSE 2020, Association for Computing Machinery, New York, NY, USA (2020), https:\/\/doi.org\/10.1145\/3368089.3409715","DOI":"10.1145\/3368089.3409715"},{"key":"ref48","doi-asserted-by":"crossref","unstructured":"Pradel, M., Sen, K.: Deepbugs: A learning approach to name-based bug detection. Proc. ACM Program. Lang. 2(OOPSLA) (Oct 2018), https:\/\/doi.org\/10.1145\/3276517","DOI":"10.1145\/3276517"},{"key":"ref49","doi-asserted-by":"crossref","unstructured":"Qingfeng, D., Kun, S., Kanglin, Y., Juan, Q.: Metrics analysis based on call graph of class methods. In: 2017 International Conference on Progress in Informatics and Computing (PIC). pp. 18-24. IEEE, Nanjing, China (Dec 2017)","DOI":"10.1109\/PIC.2017.8359507"},{"key":"ref50","doi-asserted-by":"crossref","unstructured":"Ragkhitwetsagul, C., Krinke, J.: Siamese: Scalable and incremental code clone search via multiple code representations. Empirical Softw. Engg. 24(4), 2236-2284 (Aug 2019), https:\/\/doi.org\/10.1007\/s10664-019-09697-7","DOI":"10.1007\/s10664-019-09697-7"},{"key":"ref51","doi-asserted-by":"crossref","unstructured":"Ray, M., lal Kumawat, K., Mohapatra, D.P.: Source code prioritization using forward slicing for exposing critical elements in a program. Journal of Computer Science and Technology 26(2), 314-327 (Mar 2011), https:\/\/doi.org\/10.1007\/s11390-011-9438-1","DOI":"10.1007\/s11390-011-9438-1"},{"key":"ref52","doi-asserted-by":"crossref","unstructured":"Raychev, V., Vechev, M., Krause, A.: Predicting program properties from \u201dbig code\u201d. In: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. p. 111-124. POPL \u201915, Association for Computing Machinery, New York, NY, USA (2015), https:\/\/doi.org\/10.1145\/2676726.2677009","DOI":"10.1145\/2676726.2677009"},{"key":"ref53","doi-asserted-by":"crossref","unstructured":"Reps, T., Schwoon, S., Jha, S., Melski, D.: Weighted pushdown systems and their application to interprocedural dataflow analysis. Science of Computer Programming 58(1), 206-263 (2005), https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642305000493, special Issue on the Static Analysis Symposium 2003","DOI":"10.1016\/j.scico.2005.02.009"},{"key":"ref54","doi-asserted-by":"crossref","unstructured":"Rolim, R., Soares, G., D\u2019Antoni, L., Polozov, O., Gulwani, S., Gheyi, R., Suzuki, R., Hartmann, B.: Learning syntactic program transformations from examples. In: Proceedings of the 39th International Conference on Software Engineering. p. 404-415. ICSE \u201917, IEEE Press, Buenos Aires, Argentina (2017), https:\/\/doi.org\/10.1109\/ICSE.2017.44","DOI":"10.1109\/ICSE.2017.44"},{"key":"ref55","doi-asserted-by":"crossref","unstructured":"Romano, S.: Dead code. In: 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME). pp. 737-742. IEEE, Madrid, Spain (Sep 2018)","DOI":"10.1109\/ICSME.2018.00092"},{"key":"ref56","doi-asserted-by":"crossref","unstructured":"Romano, S., Scanniello, G., Sartiani, C., Risi, M.: A graph-based approach to detect unreachable methods in java software. In: Proceedings of the 31st Annual ACMSymposium on Applied Computing. p. 1538-1541. SAC \u201916, Association for Computing Machinery, New York, NY, USA (2016), https:\/\/doi.org\/10.1145\/2851613.2851968","DOI":"10.1145\/2851613.2851968"},{"key":"ref57","doi-asserted-by":"crossref","unstructured":"Ryder, B.G.: Constructing the call graph of a program. IEEE Transactions on Software Engineering SE-5(3), 216-226 (May 1979)","DOI":"10.1109\/TSE.1979.234183"},{"key":"ref58","doi-asserted-by":"crossref","unstructured":"Sawadpong, P., Allen, E.B.: Software defect prediction using exception handling call graphs: A case study. In: 2016 IEEE 17th International Symposium on High Assurance Systems Engineering (HASE). pp. 55-62. IEEE, Orlando, FL, USA (Jan 2016)","DOI":"10.1109\/HASE.2016.13"},{"key":"ref59","doi-asserted-by":"crossref","unstructured":"Shang, S., Zheng, N., Xu, J., Xu, M., Zhang, H.: Detecting malware variants via function-call graph similarity. In: 2010 5th International Conference on Malicious and Unwanted Software. pp. 113-120. IEEE, Nancy, France (Oct 2010)","DOI":"10.1109\/MALWARE.2010.5665787"},{"key":"ref60","doi-asserted-by":"crossref","unstructured":"Silva, C.D.S., Ferreira da Costa, L., Rocha, L.S., Viana, G.V.R.: Knn applied to pdg for source code similarity classification. In: Intelligent Systems: 9th Brazilian Conference, BRACIS 2020, Rio Grande, Brazil, October 20-23, 2020, Proceedings, Part II. p. 471-482. Springer-Verlag, Berlin, Heidelberg (2020), https:\/\/doi.org\/10.1007\/978-3-030-61380-8 32","DOI":"10.1007\/978-3-030-61380-8_32"},{"key":"ref61","doi-asserted-by":"crossref","unstructured":"Singh, P., Batra, S.: A novel technique for call graph reduction for bug localization. International Journal of Computer Applications 47(15), 1-5 (2012)","DOI":"10.5120\/7261-0049"},{"key":"ref62","doi-asserted-by":"crossref","unstructured":"Sorva, J., Karavirta, V., Malmi, L.: A review of generic program visualization systems for introductory programming education. ACM Trans. Comput. Educ. 13(4) (nov 2013), https:\/\/doi.org\/10.1145\/2490822","DOI":"10.1145\/2490822"},{"key":"ref63","doi-asserted-by":"crossref","unstructured":"Sridharan, M., Fink, S.J., Bodik, R.: Thin slicing. In: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation. p. 112-122. PLDI \u201907, Association for Computing Machinery, New York, NY, USA (2007), https:\/\/doi.org\/10.1145\/1250734.1250748","DOI":"10.1145\/1250734.1250748"},{"key":"ref64","doi-asserted-by":"crossref","unstructured":"Suk, J.H., Lee, Y.B., Lee, D.H.: Score: Source code optimization & reconstruction. IEEE Access 8, 129478-129496 (2020)","DOI":"10.1109\/ACCESS.2020.3008905"},{"key":"ref65","unstructured":"The Graphviz Project: Dot language. https:\/\/graphviz.org\/doc\/info\/lang.html (2022)"},{"key":"ref66","doi-asserted-by":"crossref","unstructured":"Theodoridis, T., Rigger, M., Su, Z.: Finding missed optimizations through the lens of dead code elimination. In: Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems. p. 697-709. ASPLOS 2022, Association for Computing Machinery, New York, NY, USA (2022), https:\/\/doi.org\/10.1145\/3503222.3507764","DOI":"10.1145\/3503222.3507764"},{"key":"ref67","doi-asserted-by":"crossref","unstructured":"van Tonder, R., Le Goues, C.: Lightweight multi-language syntax transformation with parser parser combinators. In: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation. p. 363-378. PLDI 2019, Association for Computing Machinery, New York, NY, USA (2019), https:\/\/doi.org\/10.1145\/3314221.3314589","DOI":"10.1145\/3314221.3314589"},{"key":"ref68","doi-asserted-by":"crossref","unstructured":"Tufano, M., Watson, C., Bavota, G., Di Penta, M., White, M., Poshyvanyk, D.: Deep learning similarities from different representations of source code. In: Proceedings of the 15th International Conference on Mining Software Repositories. p. 542-553. MSR \u201918, Association for Computing Machinery, New York, NY, USA (2018), https:\/\/doi.org\/10.1145\/3196398.3196431","DOI":"10.1145\/3196398.3196431"},{"key":"ref69","doi-asserted-by":"crossref","unstructured":"Turhan, B., Kocak, G., Bener, A.: Data mining source code for locating software bugs: A case study in telecommunication industry. Expert Systems with Applications 36(6), 9986-9990 (2009), https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0957417408009275","DOI":"10.1016\/j.eswa.2008.12.028"},{"key":"ref70","doi-asserted-by":"crossref","unstructured":"Vujo\u0161evi\u0107-Jani\u010di\u0107, M., Nikoli\u0107, M., To\u0161i\u0107, D., Kuncak, V.: Software verification and graph similarity for automated evaluation of students\u2019 assignments. Inf. Softw. Technol. 55(6), 1004-1016 (jun 2013), https:\/\/doi.org\/10.1016\/j.infsof.2012.12.005","DOI":"10.1016\/j.infsof.2012.12.005"},{"key":"ref71","doi-asserted-by":"crossref","unstructured":"Vujo\u0161evi\u0107-Jani\u010di\u0107, M., Nikoli\u0107, M., To\u0161i\u0107, D., Kuncak, V.: Software verification and graph similarity for automated evaluation of students\u2019 assignments. Information and Software Technology 55(6), 1004-1016 (Jun 2013), https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0950584912002406","DOI":"10.1016\/j.infsof.2012.12.005"},{"key":"ref72","doi-asserted-by":"crossref","unstructured":"Wang, T., Su, X., Wang, Y., Ma, P.: Semantic similarity-based grading of student programs. Inf. Softw. Technol. 49(2), 99-107 (feb 2007), https:\/\/doi.org\/10.1016\/j.infsof.2006.03.001","DOI":"10.1016\/j.infsof.2006.03.001"},{"key":"ref73","doi-asserted-by":"crossref","unstructured":"Wang, T., Wang, K., Su, X., Ma, P.: Detection of semantically similar code. Frontiers of Computer Science 8(6), 996-1011 (Dec 2014), https:\/\/doi.org\/10.1007\/s11704-014-3430-1","DOI":"10.1007\/s11704-014-3430-1"},{"key":"ref74","doi-asserted-by":"crossref","unstructured":"White, M., Tufano, M., Vendome, C., Poshyvanyk, D.: Deep learning code fragments for code clone detection. In: Proceedings of the 31st IEEE\/ACM International Conference on Automated Software Engineering. p. 87-98. ASE 2016, Association for Computing Machinery, New York, NY, USA (2016), https:\/\/doi.org\/10.1145\/2970276.2970326","DOI":"10.1145\/2970276.2970326"},{"key":"ref75","doi-asserted-by":"crossref","unstructured":"Xiaomeng, W., Tao, Z., Runpu, W., Wei, X., Changyu, H.: Cpgva: Code property graph based vulnerability analysis by deep learning. In: 2018 10th International Conference on Advanced Infocomm Technology (ICAIT). pp. 184-188. IEEE, Stockholm, Sweden (Aug 2018)","DOI":"10.1109\/ICAIT.2018.8686548"},{"key":"ref76","doi-asserted-by":"crossref","unstructured":"Yamaguchi, F., Golde, N., Arp, D., Rieck, K.: Modeling and discovering vulnerabilities with code property graphs. In: 2014 IEEE Symposium on Security and Privacy. pp. 590-604. IEEE, Berkeley, CA, USA (May 2014)","DOI":"10.1109\/SP.2014.44"},{"key":"ref77","doi-asserted-by":"crossref","unstructured":"Yan, Z., Qian, W., Yang, Z., Zeng, W., Yang, X., Li, A.: Tffv: Translator from eos smart contracts to formal verification language. In: Sun, X., Wang, J., Bertino, E. (eds.) Artificial Intelligence and Security. pp. 652-663. Springer Singapore, Singapore (2020)","DOI":"10.1007\/978-981-15-8101-4_58"},{"key":"ref78","unstructured":"Ye, F., Zhou, S., Venkat, A., Marcus, R., Petersen, P., Tithi, J.J., Mattson, T., Kraska, T., Dubey, P., Sarkar, V., Gottschlich, J.: Context-aware parse trees. CoRR abs\/2003.11118 (2020), https:\/\/arxiv.org\/abs\/2003.11118"},{"key":"ref79","doi-asserted-by":"crossref","unstructured":"Zhang, Y., Fu, W., Qian, X., Chen, W.: Program slicing based buffer overflow detection. Journal of Software Engineering and Applications 03(10), 965-971 (2010), https:\/\/doi.org\/10.4236\/jsea.2010.310113","DOI":"10.4236\/jsea.2010.310113"},{"key":"ref80","unstructured":"Zhou, Y., Liu, S., Siow, J.K., Du, X., Liu, Y.: Devign: Effective vulnerability identification by learning comprehensive program semantics via graph neural networks. CoRR abs\/1909.03496 (2019), http:\/\/arxiv.org\/abs\/1909.03496"},{"key":"ref81","doi-asserted-by":"crossref","unstructured":"Zougari, S., Tanana, M., Lyhyaoui, A.: Hybrid assessment method for programming assignments. In: 2016 4th IEEE International Colloquium on Information Science and Technology (CiSt). pp. 564-569. IEEE, Tangier, Morocco (Oct 2016), http:\/\/ieeexplore.ieee.org\/document\/7805112\/","DOI":"10.1109\/CIST.2016.7805112"},{"key":"ref82","doi-asserted-by":"crossref","unstructured":"Zougari, S., Tanana, M., Lyhyaoui, A.: Towards an automatic assessment system in introductory programming courses. In: 2016 International Conference on Electrical and Information Technologies (ICEIT). pp. 496-499. IEEE, Tangiers, Morocco (May 2016)","DOI":"10.1109\/EITech.2016.7519649"}],"container-title":["Computer Science and Information Systems"],"original-title":[],"language":"en","deposited":{"date-parts":[[2024,11,8]],"date-time":"2024-11-08T19:54:20Z","timestamp":1731095660000},"score":1,"resource":{"primary":{"URL":"https:\/\/doiserbia.nb.rs\/Article.aspx?ID=1820-02142400004P"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024]]},"references-count":82,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024]]}},"URL":"https:\/\/doi.org\/10.2298\/csis230615004p","relation":{},"ISSN":["1820-0214","2406-1018"],"issn-type":[{"value":"1820-0214","type":"print"},{"value":"2406-1018","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024]]}}}