![]() |
Home
|
Part I DSL Debugger Demos: Demo 1.1 Video Summary (Imperative DSL debugging): This sample video demonstrates the initial work of the DSL Debugging Framework (DDF). In particular, the video demonstrates a case study of DDF on a simple Robot DSL. The video will first show the Robot specification as translated into Robot.java and Mapping.java (mapping information for automatically generating the Robot DSL debugger). Then, from the Eclipse Plug-in Development Environment, the events of the underlying GPL debugger server are captured. The video will show the final Robot DSL Debugger Environment to debug the sample Robot DSL code. The break point will show in the Robot DSL editor perspective, and the value of the robot's position in the Robot DSL will show in the variable perspective. Video Formats Available for this Demo:
Demo 1.2 Video Summary (Declarative DSL debugging I): This video demonstrates the Feature Description Language (FDL) Debugger. In our case study, we use a car's features as a target example of FDL. A car consists of a Carbody, Transmission, Engine and HorsePower. pullsTrailer is an optional feature. The break point will show in the Car FDL editor perspective, and the value of the car's possible features and composite features values in the Car FDL will show in the variable perspective. Video Formats Available for this Demo:
Demo 1.3 Video Summary (Declarative DSL debugging II): This video demonstrates debugging a Backus Naur Form (BNF) grammar at two different levels of debugging detail. In each video, a breakpoint is set at Line 3 to demonstrate the BNF editor perspective. Version 1 demonstrates the current variables shown in the DSL variable view reflecting the parsing status of the Robot BNF syntax specification. This version targets end-users with bottom-up parsing knowledge. Version 2 of the demo shows the current variables showing in the DSL variable view reflecting the view from end-users who may not be familiar with the concepts of bottom-up parsing. The second version provides alternative to the variables view, such as, production trace and token consumed trace. These two videos feature both step over and step into debugging actions on the Robot BNF syntax specification. Note: a reproduction parsing table for the Robot language BNF shown in version 1 is not part of the BNF debugger and only for reference purpose. Video Formats Available for this Demo:
Demo 1.4 Video Summary (Hybrid DSL debugging I): This video demonstrates the Hybrid DSL Debugger applied to an extension of the Robot language that allows embedded Java. As the program pointer steps through the Java user interface API code in a Robot DSL program, the input dialog window shows up to ask the user to enter the range for a random number generator. This GUI code is based on the Java Swing library. After the user clicks the "OK" button the program will stop at the very next line of the Java Swing option panel dialog window. In the variable view, there are two sets of variables available for the user to assess the program behavior. One is the variable from the Robot DSL notation position. Another view displays the variables for the embedded Java code including primitive variables (e.g., String answer and int max) and object variables (e.g., JOptionPane type object myGUI and Random type object rand). At this point two language notations (Robot and Java) complement each other to provide the user with more precise information about the debugged program execution behavior. Video Formats Available for this Demo:
Demo 1.5 Video Summary (Hybrid DSL debugging II): This video demonstrates the Hybrid DSL Debugger applied to SWUL, which is a DSL for creating Swing user interfaces. SWUL is embedded in Java code which is different from the Hybrid Robot DSL demonstrated in Demo 5 (i.e., the Robot examples shows Java code embedded in the DSL, but SWUL represents a DSL embedded in Java code). As the program pointer steps through the SWUL and Java code, a Swing window is displayed and changes its content and shape instantly according to the user's debugging actions. In the variable view, there is a set of SWUL variables available for the user to assess the program behavior based on the current program execution stage. Video Formats Available for this Demo:
Part II DSL Unit Test Engine Demos: Demo 2.1 Video Summary (Imperative DSL testing): This video demonstrates the DSL Unit Testing Engine Framework (DUTF) to generate an imperative unit test engine for the Robot DSL. DUTF interacts with the underlying JUnit test engine to obtain results that are then remapped into the abstractions available in the DSL. To complement the DDF, the DUTF assists in the construction of test cases for DSL programs, much in the sense that JUnit is used in automated unit testing of Java programs. In the DUTF, the reports of passed and failed test cases appear at the DSL level instead of the underlying GPL level. A failed test case reported within the DUTF reveals the presence of an error in a DSL program. Video Formats Available for this Demo:
Demo 2.2 Video Summary (Declarative DSL testing): This video demonstrates the DSL Unit Testing Engine Framework (DUTF) to generate an declarative unit test engine for the Car FDL. DUTF interacts with the underlying JUnit test engine to obtain results that are then remapped into the abstractions available in the DSL. Video Formats Available for this Demo:
Part III AspectG Demos: Demo 3.1 Video Summary (Adding the debug hooks with AspectG): AspectG is an aspect-oriented language that can be applied to language specifications, rather than source code. In particular, AspectG allows crosscutting concerns to be weaved into grammars that are specified in the ANTLR notation. This video demonstrates the use of AspectG to specify the debugging aspects that are used to generate the Robot DSL debugger automatically in the DSL Debugging Framework (DDF), as shown in other videos. This video will show the original base Robot grammar specification in ANTLR notation and the debugging aspects in AspectG notation. The initial phase of the AspectG weaver is responsible for parsing the AspectG specification and generating the program transformation rules that will modify the base grammar. The generated program transformation rules provide bindings to the appropriate weaving function parameters corresponding to the pointcut and advice defined in the AspectG specification. Based on the generated program transformation rules, the DMS program transformation engine performs the actual transformation on the Robot grammar, which generates mapping information for the debugger. The result is that developers do not need to specify the debugging aspects in the Robot grammar where the debugging aspects are scattered across the entire grammar file. The video will show the AspectG weaving process on the original Robot grammar. Video Formats Available for this Demo:
|
| Copyright © 2008 Hui Wu. All rights reserved. |