Below are some of the projects I've implemented over the past few years.

#

Project

Description

Language

Source Code

  1

FlakeNet

Implementation of a replicated state machine on top of flakeNet. Each client has some set of messages to send. There are multiple servers. Clients may die, servers may die, and messages may be dropped, reordered etc. There are 10 "clients". Each client has a bunch of messages to send. There are 5 "data servers".  Messages are point to point and can be dropped, or reordered. Processes can fail stop. Implementation ensures that all live servers print out client messages in the same order. When a server prints out a message, it sends a commit message . The client then prints out a message if at least three servers send a commit message. 

Java

 flakenet.zip

 2

Tiger

Complete compiler for Tiger programming language. Tiger is a Pascal-like language that supports recursion, data structures, built-in functions. Compiler implements basic lexing/parsing, type checking, register allocation, and generation of executable code.

ML

tiger.tar.gz

3

shttpd

Implementation of an asymmetric, event-driven HTTP server daemon. Implements a subset of HTTP/1.0. Emphasis was placed on efficiency and not functionality.

C/C++

shttpd.zip

  4

Echo 

Ecological simulation system based on John Holland's model. Echo is an abstract world, inhabited by different agents. Agents' behavior is influenced by their genomes. Agents compete with each other for limited resources, mate, and mutate. Echo parses Eworld configuration from an XML file. Various statistics data is collected in the course of simulation and later outputted on the screen.

Java

To be posted

5

Nibbles 

Implementation of a popular video game Nibbles. A snake crawls through the labyrinth, collecting numbers. As it eats up numbers, it grows in size. 10+ levels implemented.

x86 assembly

To be posted

6

RC

Rhymations Creations: a poetry website. A final project for a "Multimedia Class". Archive includes applet PoemOfTheDay that scrolls a message across the string. It also includes servlets implementation of a fully-fledged SQL database. You can see how the website looks at http://www.mycgiserver.com/~aileron/RC Java

rc.zip

7 ChessBot Trivial client to analyze mistakes made in chess games. It logs on to chessclub.com, spawns a process with chess engine, parses the results, and reports on mistakes made.

C

To be posted

8

Medley

Implementation of various algorithms: Turing machine simulator, mergesort, text formatter, tic-tac-toe, topological sort, Turtle language interpreter, bags data structure, binary search, Eulerian paths, prime factors package. All algorithms are implemented twice -- once in Perl and once in Python.

Perl, Python

medley.zip

9

asm

Assembler and simulator for ELI02 (MIPS-like) assembly language.

C

asm.zip

 

 

Copyright © 2002 Aleksandr Yampolskiy. All rights reserved.
Revised: February 27, 2002 .