This README file provides a brief overview of the programming assignments in this course. Each assignment focuses on different aspects of programming languages, compilers, and expert systems.
Objective: Write an essay analyzing two programming languages from different paradigms (e.g., procedural and object-oriented).
Requirements:
1- Compare and contrast two programming languages (e.g., C and C++ or Java)
2- The essay should have at least 2000 words (and at most 3000 words)
3- Use double spacing and "Times New Roman 11pt" typeface
4- Save your essay as a PDF file named number_lastname_firstname_hw1.pdf
Objective: Implement a lexer for the G++ language in two different ways: using Flex (a lexer generator tool) and Common Lisp.
Deliverables:
gpp_lexer.l (Flex implementation)
gpp_lexer.c (C file generated by Flex)
Any necessary header (.h) or C (.c) files
gpp_lexer.lisp (Common Lisp implementation)
Objective: Implement a syntax analyzer for the G++ language in two different ways: using Yacc (a parser generator tool) and Common Lisp.
Deliverables:
gpp_interpreter.y (Yacc implementation)
Corresponding C files generated by your lexer and syntax analyzer
Any necessary header (.h) or C (.c) files
gpp_interpreter.lisp (Common Lisp implementation)
Objective: Write a simple expert system in Prolog for class scheduling and flight route planning.
Part 1: Class Scheduling
Model rooms, courses, instructors, and students
Implement queries for scheduling conflicts, room assignments, and student enrollments
Part 2: Flight Route Planning
Write a predicate connection(X, Y, C) that checks if there is a route between any two given cities