Compiler
Compiler
NATIONAL INSTITUTE OF
TECHNOLOGY DELHI
Session (2024-2025)
Project Report
“Compiler Design”
The purpose of this mini project is to critically analyze the limitations of modern SQL (Structured
Query Language) and propose an alternative query language that is simpler, more expressive,
and user-friendly. SQL has been the standard language for relational databases for decades,
but its complexity and inconsistencies often pose challenges for developers, analysts, and
database administrators. This project aims to explore potential improvements and introduce a
more intuitive alternative.
● Complexity: SQL queries, especially for complex operations, can become verbose and
difficult to read.
● Inconsistencies: Different database management systems (DBMS) implement SQL
with slight variations, making portability difficult.
● Steep Learning Curve: Beginners often struggle with SQL’s syntax and concepts such
as joins, subqueries, and indexing.
● Performance Optimization Challenges: Writing efficient SQL queries requires deep
knowledge of database internals.
This project aims to solve these issues by designing a query language that retains the power of
SQL but simplifies its syntax and improves usability.
Databases are the backbone of modern applications, and querying data efficiently is crucial.
This project is significant because:
● Enhancing Productivity: A simpler query language can reduce development time and
effort.
● Better Readability: Developers and analysts can write and understand queries more
easily.
● Improved Performance: Optimized query execution can lead to faster data retrieval.
● Broader Accessibility: Making database querying more intuitive helps beginners and
non-technical users interact with databases effectively.
2. Literature Review
What are the existing solutions or technologies related to this project?
What are the key features or concepts that support this project?
1. Research SQL’s Limitations: Conducted a study on common pain points in SQL
usage.
2. Analyze Alternative Query Languages: Reviewed NoSQL, GraphQL, and LINQ to
identify key takeaways.
3. Design Query Syntax: Created a more expressive and user-friendly syntax.
4. Implement a Prototype Parser: Developed a parser using ANTLR to interpret and
execute queries.
5. Performance Benchmarking: Tested the new language against SQL in terms of
readability and execution time.
4. Implementation Details
What are the core components of the project?
The saneql_lexer
The yacc file
5. Results & Analysis
What were the key outcomes of the project?
This project establishes a foundation for future innovations in database querying, making it more
efficient and accessible.