DOID: A Syntax Analyzer for Mid-Level Compilation Processes
The importance of syntax analysis in the development of a compiler and Programming Languages cannot be overemphasized. Without it, we cannot even program correctly or properly. This research was performed in order to practicalize the theoretical knowledge of Compiler Construction and Automata Theory, and also with the motivation to make Nigeria's first Programming Language. The research discusses the development of Syntax Analyzers using Parser generators and also the general program structure in the DOID Language whose Lexical Analyzer was previously discussed. The project was carried out using the de-sugaring process, Yacc/Bison Parser Generator and the C Language. The results show there is faster computation at a trade off with smaller specification set, fewer syntaxes and easy declaration of variables when compared to some other derived programming languages.
• Aho, Alfred V. Ravi Sethi and Jeffrey D. Ullman (2007). Compilers, Principles, Techniques and Tools. Addison-Wesley, Boston.
• Oyebode, Idris and Ajayi, Adedoyin O. (2016) “DOID: A Lexical Analyzer for Understanding Mid-Level Compilation Processes” Journal of Engineering and Computer Science (IJECS), https://www.ijecs.in, Volume 5 Issue 12, Dec 2016, 19507-19511, available at: ]http://www.ijecs.in/index.php/ijecs/article/view/3442/3200. Last accessed: March 10, 2020.
• McCracken Daniel and Reilly Edwin (2003). Backus-Naur form (BNF), Encyclopedia of Computer Science. 129-131.
• Sutter Herb (2014), Wording for std::uncaught_exceptions, N4259 proposed wording for N4152. Available at: http://isocpp.org/files/papers/n4259.pdf. Accessed 30 May 2020.
• Brown, Walter. Extending Static_assert, V2. 2014.
• Jabot, Corentin. “P1161R2: Deprecate Uses of the Comma Operator in Subscripting Expressions.” Www.Open-Std.Org, 21 Jan. 2019, www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1161r2.html. Accessed 30 May 2020.
• Raschka, Sebastian. “The Key Differences between Python 2.7.x and Python 3.x with Examples.” Dr. Sebastian Raschka, 1 June 2014, sebastianraschka.com/Articles/2014_python_2_3_key_diff.html. Accessed 30 May 2020.
• “Java API Reference.” Docs.Oracle.Com, 2018, docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html. Accessed 30 May 2020.
• “JDK 15.” Openjdk.Java.Net, 2020, openjdk.java.net/projects/jdk/15/. Accessed 30 May 2020.
• Shriram, Krishnamurthi (2012). Programming Languages: Application and Interpretation Second Edition. Addison-Wesley, Boston.
• Biswajit Bhowmik, Abhishek Kumar, Abhishek Kumar Jha, Rajesh Kumar Agrawal. (2010) A New Approach of Complier Design in Context of Lexical Analyzer and Parser Generation for NextGen Languages. International Journal of Computer Applications (0975 – 8887)Volume 6– No.11, September 2010
• David Galles (2005). Modern Compiler Design, Addison- Wesley.
• Davide Pozza, Riccardo Sisto, Luca Durante, Adriano Valenzano (2006). Comparing Lexical Analysis Tools for Buffer Overflow Detection in Network Software, IEEE Xplore, 0-7803-9575-1.
• Shriram, Krishnamurthi (2012). Programming Languages - Lecture 1. September 5th. Available at: http://www.youtube.com/watch?v=PQPXkATdc04 Accessed: February 2020.