PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Jane Street

Implement compiler for custom language

Last updated: Mar 29, 2026

Quick Overview

This question evaluates compiler and interpreter design skills, object-oriented architecture for language tooling, language semantics, and systematic testing/debugging of runtime implementations.

  • hard
  • Jane Street
  • System Design
  • Machine Learning Engineer

Implement compiler for custom language

Company: Jane Street

Role: Machine Learning Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

##### Question Design and implement a compiler/interpreter for a simple bespoke programming language in your preferred language. Describe your object-oriented design, the compilation pipeline, and how you would detect and fix bugs.

Quick Answer: This question evaluates compiler and interpreter design skills, object-oriented architecture for language tooling, language semantics, and systematic testing/debugging of runtime implementations.

Related Interview Questions

  • Design exchange–trading system message flow - Jane Street (easy)
  • Validate order book data across multiple databases - Jane Street (easy)
  • Design and implement a tiny language runtime - Jane Street (hard)
Jane Street logo
Jane Street
Aug 4, 2025, 10:55 AM
Machine Learning Engineer
Technical Screen
System Design
18
0

Design and implement a simple compiler/interpreter

Goal

Design and implement a small compiler/interpreter for a bespoke toy language in your preferred programming language. Explain:

  1. Your object-oriented design (key classes and their responsibilities).
  2. The compilation pipeline (from source to execution and/or code generation).
  3. How you would systematically detect and fix bugs.

Assumptions and scope (you may adapt as needed)

  • Target language: a small, expression-oriented language (call it MiniLang) with integers, booleans, variables, arithmetic, comparisons, if/else, while, let bindings, functions, and print.
  • Implementation language: your choice (example below uses Python, but any OO language is fine).

MiniLang sketch

  • Types: int, bool.
  • Statements: let, assignment, print, if/else, while, block, function def, return.
  • Expressions: literals, variables, unary (!, -), binary (+, -, *, /, <, >, ==, &&, ||), call.
  • Example: let x = 2 + 3 * 4; if (x > 10) { print(x); } else { print(0); }

Deliverables

  • A short description of your OO architecture.
  • The compilation pipeline with key phases and invariants.
  • Minimal code skeletons or pseudocode for lexer, parser, AST, and interpreter or bytecode VM.
  • Testing and debugging strategy.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Jane Street•More Machine Learning Engineer•Jane Street Machine Learning Engineer•Jane Street System Design•Machine Learning Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.