some compiler design implementations