-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md.old
26 lines (18 loc) · 1.78 KB
/
README.md.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Homework
The goal of this homework is to write a service that can convert programs in lisp into their javascript equivalent. You're
free to implement this service in any mainstram language / tool chain of your choice. Your service should work for basic arithmetic; variable declaration, function declaration, function calls, closures, and basic loops and branching. The service works on a simplified version of lisp -- no need to support everything described in the portable standard lisp.
You are encourged to use basic compiler tools like lexers and parsers. However, using an existing transpilation library will **not** be accepted. There are hundreds of lisp variants so you should create or select one that makes sense for the scope of this homework.
## Write up:
Your solution should have a read me which includes:
- How to run your project
- The grammar specification of your simpflied lisp
- The capabilities and limitations of your implementation
- An explanation of any issues or problems you encountered and how you decided to approach the problem
## Backend
Your service should have at least two endpoints:
*POST* /isValidLisp: An endpoint to determine whether a string is a valid lisp program
*POST* /convertToJS: An endpoint which given a valid lisp program as a string will return the equivalent javascript. When the string supplied is not a valid program, return an error.
## Test programs (Optional)
Include a few test programs
## Frontend (Optional)
Your front end should have a code editor like interface which is split down the middle. On the left hand side of the screen should be an input where you can type lisp code. On the right side, is the read only javascript code generated by your backend. As you type code into the code editor, the right hand side of the display updates in real time.