About - nus-cs4215/x-slang-t1-xz-jj GitHub Wiki

About SICPy

We quote:

Source is a family of languages, designed for the textbook Structure and Interpretation of Computer Programs, JavaScript Adaptation (SICP JS). The languages are called Source §1, Source §2, Source §3 and Source §4, corresponding to the respective chapters 1, 2, 3 and 4 of the textbook. Each previous Source language is a sublanguage of the next, and all Source languages are sublanguages of JavaScript.

SICPy is the Python version of that.

You can now access SICPy here!

SICPy Academy allows students to type in Python source code (instead of JS!) and have them evaluated at once in the front end. At the same time, part of the source pre-declared functions up to Source §3 (such as list, append, etc) are also available in SICPy. SICPy implements code auto-completion, and is compatible the with React-Ace editor syntax highlighting.

Following the pedagogy in SICP JS, beginning with chapter §0 and up to §4, students are limited to a subset of Python syntaxes/ keywords. As the students work through the chapters, they are progressively introduced to newer computing concepts. SICPy does this restriction of syntaxes by first compiling the source code into an abstract syntax tree. We then use our syntax analyzer to walk through the AST and filter out any restricted syntaxes (based on the chapter §x the student is using). Shall the code pass the syntax analyser, it is passed to the pyodide interpreter to be executed. The results are returned and presented in the Source Academy front end.

Quick Start Guides to SICPy Development

Visit the TODOs lists and Quick Start guides to take a glimpse on how to kick start development of SICPy Academy.

About Us

Khoo Xin Zhe is currently a PhD student in NUS. His research interests are in programmable networks. Ang Jun Jie is a masters student in NUS majoring in the CyberSecurity track. They met in CS4215 and became close friends very quickly. Both share the same enthusiasm in programming languages implementations, computer science and often talk about these subjects with the company of good food.