Jianning Yue Wookyun Kho Young Jin Yoon - …sedwards/classes/2006/w4115-fall/reports/ipl... ·...
Transcript of Jianning Yue Wookyun Kho Young Jin Yoon - …sedwards/classes/2006/w4115-fall/reports/ipl... ·...
AGL : Animation applet Generation Language
ContentsIPL?AdvantagesSyntaxDevelopmentExamplesLessons Learned
AGL : Animation applet Generation Language
IPL?IPL is not Image Processing LanguageNow this is an
Animation applet
Generation
Language!
AGL : Animation applet Generation Language
Advantages (1/2)IPL provide very flexible image handlingProvide fundamental operation for image as expression Rotate (@ operator) Translate (‘operator) Scale (^ operator)
Provide animate() function to produce an animated Image
Provide coord type to handle coordinates
AGL : Animation applet Generation Language
Advantages (2/2)Easy to learnC like syntax and scopeEasily-recognized operator (^ is power operator from another language)
ProductiveCan be exported as an JAVA applet smaller than GIF Animated Image
AGL : Animation applet Generation Language
Syntax : Types (1/3)Four types in IPLnumber imagecoordbool
Optional declarator in IPL [] for array definitions
AGL : Animation applet Generation Language
Syntax : Types (2/3)
For both imgA[0] imgA[0~1]
For lvalue imgA[1+] imgA[1~2+]
AGL : Animation applet Generation Language
Syntax : Expr (1/4)Basic image operator imgA = imgA @ numA; // rotate operator imgA = imgA ^ numA; // scale operator imgA = imgA ` coordA; // set operator imgA = imgA : numA; // alpha operator imgA = imgA $ imgB; // concat operator
AGL : Animation applet Generation Language
Syntax : Expr (2/4)Basic bool operatorbooA = numA > numB; // gt operatorbooA = numA < numB; // lt operatorbooA = numA >= numB; // ge operatorbooA = numA <= numB; // le operator booA = numA == numB; // eq operatorbooA = numbooA != numbooB; // neqbooA = !booA // not operator
AGL : Animation applet Generation Language
Basic arithmetic operatornumA = numA * numB; // multiplynumA = numA / numB; // divisionnumA = numA % numB; // modulonumA = numA + numB; // plus numA = numA - numB; // minus
For coord, there is no operation. However we can still handle this. How?
Syntax : Expr (3/4)
AGL : Animation applet Generation Language
For coordinationcooA = (xof(cooA),numA);cooB = (numA, yof(cooA));
By providing xof() and yof(), we can still maintain flexibility without any complexibility!
Syntax : Expr (4/4)
AGL : Animation applet Generation Language
Providing while, if statement just as almost same as C’s statement definition.Except using {} for single statement.
You can define a function using defunc keywords.defunc foo (number A, number B) number C{ C = A + B; }
Providing return, break, continue statements.
Syntax : Stmt
AGL : Animation applet Generation Language
DevelopmentTask DistributionArchitecture OverviewImplementationTest and Debug plan
AGL : Animation applet Generation Language
Task distribution
Young Young Jin YoonJin Yoon
WookyunWookyun KhoKho
JianningJianning YueYue
ParserParserLexerLexer
WalkerWalker
AnimationAnimationModuleModule
ModuleModule &&IntegrationIntegration
TestTest
AGL : Animation applet Generation Language
Implementation (1/3)ANTLRParserLexerWalker
Animation ModuleAnimation Displaying EngineAnimation Applet Code
AGL : Animation applet Generation Language
Implementation (2/3)Input
Stream
Token
StreamLexer Parser AST Walker
AST
Symbol TableException Handling
Java 2D Animation module
IPLObject
Non Image Output
Create/Invoke/Fetch/Set
Java 2D Applet module
DisplayDisplay ImagesImages SaveSave AnimationAnimation InformationInformation
AGL : Animation applet Generation Language
Implementation (3/3)Animation Applet If you do “export”, you have to specify the filename.Ex) export to “IPLoutput.ipl”
<applet code=IPLApplet.class width=1024 height=600><param name="fps" value="20"><param name="ipl" value="IPLoutput.ipl"></applet>
AGL : Animation applet Generation Language
Test and Debug PlanTest plan
Control statement Function call Static scope Static image display Image rotation Image scale Image rotate Image set Image alpha Image animation Image Array animation Combined Image animation
Debug Plan Make debug flag and debug()
for debugging Using assert() Using eclipse IDE
Good for debugging
AGL : Animation applet Generation Language
Examples (1/4)Basic Arithmetic, Coordination
Results:(1,3)4.0
AGL : Animation applet Generation Language
Animated image
Examples (3/4)
strawberry.jpgstrawberry.jpg
AGL : Animation applet Generation Language
Lessons learnedThings learned from Software Engineering actually
works!Still, Team management.Especially for Time managementHard to find implement together!
Need more fair distribution to learnTo learn something, everybody should do every
procedure together that we have.Clarify how compiler works!