This preview shows page 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-102-103-104-105-106-107-108-109-110-111-112-113-114-115-205-206-207-208-209-210-211-212-213-214-215-216-217-218-219 out of 219 pages.
Table of ContentsIntroduction Language TutorialRunning the compilerExample Program: HelloWorldProgram Sectionsif/for loopsUser Defined FunctionsLanguage Manual Project Plan Engineering ProcessTeam Roles and ResponsibilitiesProgramming Guide and Software Development Environment Architectural DesignArchitecture of Aasl compilerLexical analysis:Parsing: Tree walking / Static semantic analysis:Code-generation: Structure of the source programHeader-section: User-defined functions: Main function: Test Plan Lessons Learned Appendix Source codeAaslGram.gwalker.gAaslType.javaAaslBool.javaAaslInt.javaAaslFloat.javaAaslString.javaAaslVariable.javaAaslVoid.javaAaslEnvelope.javaAaslEnvelopePair.javaAaslMixer2.javaAaslOscillator2.javaAaslOscillatorBank.javaSynthElement.javaOscillator.javaEnvelope.javaBranchInstruction.javaComparision.javaForLoopInstruction.javaInstruction.javaLoopInstruction.javaSegment.javaAaslException.javaAaslExecutedFunction.javaAaslFunctionCall.javaAaslFunctionCallArguments.javaAaslFunctionDef.javaAaslFunctionDefArg.javaAaslSegArray.javaAaslSymbolTable.javaAaslVectorUpdate.javaCodeGeneration.javaFunctionCodeGeneration.javaAaslMain.javaTest ProgramAaslLexerTester.javaAaslParserTester.javaAaslTreeWalkerTester.javaCodeGenTest1.javaFuncTable.javaInFilter.javaOutFilter.javaTestList.javaParserTest.javaAasl Sample Programschords.aaslenvtest.aaslenvtest2.aaslfactortest1.aaslforlooptest1.aaslforlooptest2.aaslhelloworld.aaslhelloworld2.aaslosc2osc.aaslosc2osc2.aaslsegtest1.aaslsegtest2.aaslsegtest3.aasluserDefFunction1.aasluserDefFunction2.aaslZelda.aaslAasl Project Report May 7th, 2007 1 PLT Final Report Analog Additive Synthesis Language (AASL): A programming language for the creation of original sounds Vaishnav Janardhan, Rob Katz, Carlos Rene Perez, Albert Tsai May 7th, 2007Aasl Project Report May 7th, 2007 2Table of Contents 1. Introduction................................................................................................................... 3 1.1. Abstract..................................................................................................................3 1.2. A Brief History ......................................................................................................3 1.3. Bibliography .......................................................................................................... 5 2. Language Tutorial.........................................................................................................6 2.1. Running the compiler ............................................................................................6 2.2. Example Program: HelloWorld............................................................................. 6 2.2.1. Program Sections........................................................................................ 6 2.2.2. Main Function............................................................................................. 7 2.3. Example 2..............................................................................................................7 2.3.1. Oscillator Banks..........................................................................................8 2.3.2. Envelopes.................................................................................................... 8 2.3.3. Mixers ......................................................................................................... 9 2.4. Example 3............................................................................................................ 10 2.4.1. Segments................................................................................................... 11 2.4.2. if/for loops................................................................................................. 11 2.4.3. User Defined Functions ............................................................................ 12 3. Language Manual........................................................................................................ 13 4. Project Plan................................................................................................................. 26 4.1. Engineering Process............................................................................................. 26 4.2. Programming Style Guide ................................................................................... 26 4.3. Project Timeline................................................................................................... 26 4.4. Team Roles and Responsibilities......................................................................... 27 4.5. Programming Guide and Software Development................................................ 27 5. Architectural Design................................................................................................... 30 5.1. Architecture of aasl compiler............................................................................... 30 5.1.1. Lexical Analysis........................................................................................ 31 5.1.2. Parsing.......................................................................................................32 5.1.3. Tree walking / Static semantic analysis....................................................32 5.1.4. Code Generation .......................................................................................34 5.2. Structure of the source program .......................................................................... 35 5.2.1. Header Section..........................................................................................36 5.2.2. User defined functions.............................................................................. 36 5.2.3. Main function............................................................................................36 6. Test Plan...................................................................................................................... 37 6.1. Automation .......................................................................................................... 37 6.1.1. String Comparison....................................................................................37 6.1.2. JDF’s JUnit+ANTLR Framework ............................................................ 37 6.1.3. Code Generation
View Full Document