OVERVIEW (3501B)
1 Interpreted Language Proposal 2 by Paul Longtine (paul@nanner.co) 3 4 5 INTRODUCTION 6 7 During my time in Computer Programming and Web Development I learned to use 8 Python and along with that, I learned a lot about software development and 9 programming concepts. Python built a bridge between ideas and reality when 10 learning programming concepts because of the ease of prototyping ideas and 11 architectures. Going from python to a language where implementing ideas takes 12 much more time and effort is a big wall in my growth as a programmer. The main 13 issue with this wall is that most ideas I came up with needed much more thought 14 if the idea was even worth the effort. Why not take the knowledge I learned in 15 and re-create my own version of a Python-like interpreted language? And because 16 of that thought I wrote this paragraph explaining my reasoning. 17 18 GOALS 19 20 The goal of this project will be to not make the best, fastest, most awesome 21 interpreted language that has ever graced planet Earth, but to provide a great 22 project to learn more about taking a decently complex design, and bring it into 23 reality using tools and languages I have yet to initiate a complex project with. 24 To be more detailed, I plan to implement this project using the programming 25 language C, using a fluent and comprehensive use of a canonical Git workflow and 26 implementing Continuous Integration keep track of stable branches. 27 28 IMPLEMENTATION 29 30 This project will have several components that will work together to provide 31 the working product. These components are as follows: 32 33 * Interpreter 34 - The interpreter will parse and convert code into bytecode to be executed 35 by the VM runtime 36 37 * Virtual Machine Runtime 38 - This will be a stack-based VM providing the runtime for working code 39 40 * Standard Library 41 - Provide a library of tools to make the language somewhat usable 42 43 SPECIFICATION 44 45 Put in fancy words, this will be an imperative type-sensitive language that 46 will provide the basic functions of programming languages. 47 48 Look into the SPECIFICATION file for more detail. 49 50 PLAN 51 52 When do I expect this to be done? What parts will be done when? 53 54 I plan on 'finishing' this project at the end of the year (by May 2016) 55 56 +-----------------+-----------------------------------+------+ 57 |SHOP WEEK | DESCRIPTION | Done | 58 +-----------------+-----------------------------------+------+ 59 |1st week: | Finish this document. |(*) | 60 +-----------------+-----------------------------------+------+ 61 |2nd-3rd week: | Outline SPECIFICATION document |(*) | 62 +-----------------+-----------------------------------+------+ 63 |4rd-6th week: | Finish VM |( ) | 64 +-----------------+-----------------------------------+------+ 65 |7th-13th week: | Finish interpreter |( ) | 66 +-----------------+-----------------------------------+------+ 67 |13th-17th week: | Start work on stdlib/other libs |( ) | 68 +-----------------+-----------------------------------+------+ 69 70 CONCLUSION 71 72 In conclusion, this project will be for self-growth and strictly selifsh 73 reasoning only. Any delusions of this ever being useful will be expunged with 74 out hesitation. 75 76 Comedy aside this project will try to be a functioning programming language 77 with what anyone would expect out of a language. 78