Theses and Dissertations
Permanent URI for this collection
Browse
Browsing Theses and Dissertations by Subject "programming language"
Now showing 1 - 1 of 1
Results Per Page
Sort Options
Item Open Access EMEN, AST-BASED PROGRAMMING LANGUAGE(Nazarbayev University School of Engineering and Digital Sciences, 2024-04-21) Tokan, Bexultan; Kabdrashev, Bekzat; Serikbayev, Marat; Surpkelov, NurlybekThe goal of our senior project, "Emen," is to overcome the traditional text-based programming languages' difficult learning curve and error-prone character, which deter many newcomers. Emen is a programming language that takes a new approach by using an Abstract Syntax Tree (AST) and combining a customized editor and compiler to reduce common syntactic and semantic problems. The constraints found in current programming environments and the advantages of visual languages like Scratch for education served as the inspiration for this project. By making programming more approachable and less daunting for novices while maintaining its power and flexibility for more experienced programmers, Emen seeks to transform the programming industry. Our team used the Agile process to create Emen, a functional programming language with a feature set, by utilizing development technologies including Git, Go, and Raylib. Type and variable declarations, function calls, support for logical and arithmetic operations, static arrays, and control structures like while loops and if-else statements are a few examples of these. By enabling direct interaction and editing in the user interface (UI) and providing a visual representation of the code in AST format, Emen's editor guarantees a syntax-error-free writing experience. Significant improvements were made in the spring after the programming language was successfully implemented with an operating editor and compiler by the end of the fall semester. A revamped user interface (UI) influenced by the color scheme of VS Code, a reorganized code base for easier navigation and maintenance, and the transition from an array to a linked-list structure for effective code node management were among the modifications. Notably, these updates improved the backend operations by fixing reference problems and drastically reducing time complexity. As it stands now, Emen set the stage for future advancements. Future work ideas include investigating automatic mistake correction, making sure the language is cross-platform compatible, and extending its capabilities to accommodate object-oriented programming concepts. Emen aims to become a standard instrument in programming education and a driving force behind innovation in software development methodologies.