mfan - columbia universityaho/cs4115_spring-2010/... · syntax directed translation testing and...
TRANSCRIPT
![Page 1: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/1.jpg)
MFANA PROGRAMMING LANGUAGE FOR WRITING MUSIC
![Page 2: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/2.jpg)
TEAM MEMBER
Weiqi Ma ([email protected])
Guangwei Zhang ([email protected])
Chen Qian ([email protected])
Xue Bai ([email protected])
Zitong Wei ([email protected])
![Page 3: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/3.jpg)
A declarative, interpreted language for writing music
who will use it?
What kind of music users are able to write in our language?
WHAT IS IT?
![Page 4: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/4.jpg)
WHY DO WE DO IT?
*Everybody loves music
*Easy to learn our language
*Easy to test how your music sounds like
![Page 5: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/5.jpg)
• Basically, We convert the Modern musical symbols into the programming language like notation.
Basic Mfan Notation
• Pattern: specify a section of melody• Song: specify the name• Track: specify the instrument• Melody: specify the key and tempo
![Page 6: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/6.jpg)
%%Pattern “Rep_basso” | D A3 B3 F3 ||G3 D3 F3 A3 |%%Melody(“Canon_violin1”,DMAJOR, 4/4, Adagio){| rw||rw || F5 E5 D5 C5 || B A B C5 ||D5 C5 B A||G F G E | //etc.}
Melody(“Canon_violin2”,DMAJOR, 4/4, Adagio){|r(4)|| F5 E5 D5 C5 || B A B C5 ||D5 C5 B A||G F G E | //etc.}
Melody(“Canon_violin3”,DMAJOR, 4/4, Adagio){| r(6)|| F5 E5 D5 C5 || B A B C5 ||D5 C5 B A||G F G E | //etc.}
Melody(“Canon_basso”,DMAJOR, 4/4, Adagio){Rep_basso Rep_basso Rep_basso}
Song(“Canon”){& Track(Violin)& {Canon_violin1}
& Track(Violin)& {Canon_violin2}
& Track(Violin)& {Canon_violin3}
& Track(Cello)& {Canon_basso}}
Sample Program:Canon Johann Pachelbel
![Page 7: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/7.jpg)
Basic Mfan Notation
| | denote one bar
C4w C denotes Note Name, 4 denotes Octave, w denotes Note Value
Flat: #, Sharp: b, Natural n
Rest: r
| rw| | F5q E5q D5q C5q|
![Page 8: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/8.jpg)
More advanced notation
• Abbreviation: C
• Chord: + C4w+E4w+G4w
• Tuplet: for example three note in one beat
Tuplet(“C D E”, q)
• Dynamics: mf mp f p
• Dotted note: C4w.=C4w C4h
• Repeat signs: |: :|
|: | 1st| :| 2nd| |
![Page 9: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/9.jpg)
System Architecture
Lexical Analyzer InterpreterSemantic
AnalyzerSyntax
AnalyzerTokens
Abstract Semantic
Tree
Mfan Source code :
T.g
Tparser.javaT.token Tlexer.java
Target Program
![Page 10: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/10.jpg)
System Integration
Define the system integration environment
Make sure the compiler components work together
![Page 11: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/11.jpg)
Project Manager
Tester & Validator
System Integrator
System Architect
Language & Tools Guru*White paper
*Reference manual*Tutorial
communicate
*Grammar*SDT
version control
System Integration
![Page 12: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/12.jpg)
Lexical Analyzer
Another Tool for Language Recognition
TreeWalker
Syntax Analyzer
Tokens
Abstract Semantic
Tree
Mfan Source code
T.g
JavaVirtual Machine
T.tokenTlexer.java
Tparser.java
platform
![Page 13: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/13.jpg)
Test and ValidationTestUnit Testing-Black box, white box,
automated testIntegration Testing-Subsystems (front end, back
end)-Link to test the whole system
System/Acceptance Testing-Usability test (easiness, user
need)-Performance test (large input,
OS, hardware)
![Page 14: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/14.jpg)
ScheduleDate MilestoneFeb 24 White Paper
Syntax tree, intermediate code
Syntax Directed Translation
Testing and Final Report
Mar 24 Language Tutorial,Reference Manual
Syntax tree, intermediate code
Syntax Directed Translation
Testing and Final Report
Apr 20 Lexer and Parser
Apr 26 Syntax Tree, Intermediate Code
May 5 Syntax Directed Translation
May 9 Testing and Final Report
![Page 15: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/15.jpg)
Final DeliverableA language to compose music on computer
Write music in plain text files Support variations on timbre, time signature, key signature and tempo. Support multi-track music Support code reuse for repeated melodies
A compiler that compiles the source code into a midi file
MFan
![Page 16: MFAN - Columbia Universityaho/cs4115_Spring-2010/... · Syntax Directed Translation Testing and Final Report Mar 24 Language Tutorial,Reference Manual Syntax tree, intermediate](https://reader030.vdocuments.mx/reader030/viewer/2022040915/5e8dd915f9b1a556835347d4/html5/thumbnails/16.jpg)
THANK YOU!!!The Mfan Team
Project Manager: Weiqi MaLanguage Guru: Guangwei Zhang
System Architect: Cheng QianSystem Integrator: Xue Bai
Tester and Validator: Zitong Wei