Project: Compilers

Learn more about this resource and browse through a variety of related open source projects.

Compilers

Involved in this project: Panos Ioannidis
A programming project that was developed as a university assignment for the subject of Compilers. This project features three languages: C, Java and Python and the Flex lexical analyzer. We include: a Python solution for the balanced parentheses problem using a pushdown automaton, a Python program that generates random character sequences based on specific grammar, a Java program that implements a top-down syntax analyzer and two lexical analyzers in Flex for sample variable and geometric shape declaration.

Similar to this project

Android Emergency Application

Involved in this project: Panos Ioannidis, Dionisis Nikas
An advanced Android application that was developed as a university assignment for the subject of Software Engineering. The app is based on Google's Firebase platform. Users are able to easily authenticate with their Google accounts. Real time chat with a hypothetical licensed doctor, in-app and system wide alerts on major catastrophic events, a panic button for emergency calls, a driving mode that notifies of speeding violations and a disability mode for fall detection. This software was developed in phases based on RUP with detailed UML diagrams.

Android Speedometer

A simple Android application that was developed for the subject of Software Engineering. The app uses Google's services to determine the phone's location and creates a local database to keep track of speeding violations. The user is able to set the upper speed limit (km/h) and start or pause speed monitoring on demand. When a speeding violation is detected, the app notifies the user with characteristic sounds and text-to-speech messages. The longitude, latitude, speed and timestamp of the violations are stored locally and overlaid on a Google Map.

Bioinformatics

Involved in this project: Panos Ioannidis
A Python project that was developed as a university assignment for the subject of Bioinformatics. The goal of this assignment was to process hypothetical sequences of nucleotides on seven different scenarios. The Biopython library is used for biological computation. The Needleman-Wunsch algorithm is utilized for sequence alignment along with Hidden Markov Models with the Viterbi algorithm.

Dining Philosophers

A Java solution to the Dining Philosophers problem developed as a university assignment for the subject of Operating Systems. On startup, the user is prompted to enter the number of philosophers in the simulation. Then, the philosophers are initialized with adjacent forks between each other as they "sit" on the lunch table. Each philosopher can be in one of three states: thinking, hungry or eating. As they get hungry and eventually start eating, they lift their forks, thus locking them for the amount of time required to eat. When forks are locked, adjacent philosophers must wait for the neighbor to release them. All state changes are displayed in console as well as the average waiting time for each philosopher.

Image Processing

Involved in this project: Panos Ioannidis, Dionisis Nikas
A Python project that was developed as a university assignment for the subject of Image Processing. The program takes an input image and a reference dataset of photos. The goal is to colorize the greyscale image using a trained support vector machine. To achieve that, we have implemented a variety of image processing techniques. First, we change color spaces from RGB to LAB. Then, we apply the SLIC algorithm to find the group of superpixels for each image. These segments along with SURF and GABOR features are given as input for the SVM. Using scikit-learn, we use machine learning techniques to predict the color of a superpixel using the dataset superpixels as reference. The output of the program returns the colorized version of the input image.
View all projects