AGL : Animation applet Generation LanguageJianning YueWookyun KhoYoung Jin YoonAGL : Animation applet Generation LanguageContentsIPL?AdvantagesSyntaxDevelopmentExamplesLessons LearnedAGL : Animation applet Generation LanguageIPL?IPL is not Image Processing Language Now this is an Animation appletGenerationLanguage!AGL : Animation applet Generation LanguageAdvantages (1/2)IPL provide very flexible image handling Provide 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 coordinatesAGL : Animation applet Generation LanguageAdvantages (2/2)Easy to learn C like syntax and scope Easily-recognized operator (^ is power operator from another language)Productive Can be exported as an JAVA applet smaller than GIF Animated ImageAGL : Animation applet Generation LanguageSyntax : Types (1/3)Four types in IPL number image coord boolOptional declarator in IPL [] for array definitionsAGL : Animation applet Generation LanguageSyntax : Types (2/3) For both imgA[0] imgA[0~1] For lvalue imgA[1+] imgA[1~2+]AGL : Animation applet Generation LanguageSyntax : Types (3/3) For rvalue imgA[0-] imgA[1~2-]AGL : Animation applet Generation LanguageSyntax : 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 operatorAGL : Animation applet Generation LanguageSyntax : Expr (2/4)Basic bool operator booA = numA > numB; // gt operator booA = numA < numB; // lt operator booA = numA >= numB; // ge operator booA = numA <= numB; // le operator booA = numA == numB; // eq operator booA = numbooA != numbooB; // neq booA = !booA // not operatorAGL : Animation applet Generation LanguageBasic arithmetic operator numA = numA * numB; // multiply numA = numA / numB; // division numA = numA % numB; // modulo numA = numA + numB; // plus numA = numA - numB; // minusFor coord, there is no operation. However we can still handle this. How?Syntax : Expr (3/4)AGL : Animation applet Generation LanguageFor coordination cooA = (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 LanguageProviding 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 : StmtAGL : Animation applet Generation LanguageDevelopmentTask DistributionArchitecture OverviewImplementationTest and Debug planAGL : Animation applet Generation LanguageTask distributionYoung Young Jin YoonJin YoonWookyunWookyun KhoKhoJianningJianning YueYueParserParserLexerLexerWalkerWalkerAnimationAnimationModuleModuleModuleModule &&IntegrationIntegrationTestTestAGL : Animation applet Generation LanguageArchitecture OverviewUsed UML Class DiagramAGL : Animation applet Generation LanguageImplementation (1/3)ANTLR Parser Lexer WalkerAnimation Module Animation Displaying Engine Animation Applet CodeAGL : Animation applet Generation LanguageImplementation (2/3)InputStreamTokenStreamLexer Parser AST WalkerASTSymbol TableException HandlingJava 2D Animation moduleIPLObjectNon Image OutputCreate/Invoke/Fetch/SetJava 2D Applet moduleDisplayDisplay ImagesImagesSaveSave AnimationAnimation InformationInformationAGL : Animation applet Generation LanguageImplementation (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 LanguageTest and Debug Plan Test 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 debuggingAGL : Animation applet Generation LanguageExamples (1/4)Basic Arithmetic, CoordinationResults:(1,3)4.0AGL : Animation applet Generation LanguageStatic imageExamples (2/4)sshield.jpgsshield.jpgAGL : Animation applet Generation LanguageAnimated imageExamples (3/4)strawberry.jpgstrawberry.jpgAGL : Animation applet Generation LanguageExamples (4/4)GIF animationAGL : Animation applet Generation LanguageLessons learnedThings learned from Software Engineering actually works!Still, Team management. Especially for Time management Hard to find implement together!Need more fair distribution to learn To learn something, everybody should do every procedure together that we have.Clarify how compiler works!AGL : Animation applet Generation LanguageThank you for listening our
View Full Document