1 / 7

Templates of slides for P2

Templates of slides for P2. A very brief refresher of your problem. Describe in English what artifacts (programs, etc) you wish to synthesize, from what specs, and why these programs are hard to write manually. This defines your goals. [30 seconds].

maja
Télécharger la présentation

Templates of slides for P2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Templates of slides for P2

  2. A very brief refresher of your problem Describe in English • what artifacts (programs, etc) you wish to synthesize, • from what specs, and • why these programs are hard to write manually. This defines your goals. [30 seconds]

  3. Your Language (YL): definition and rationale What data types and operations are in your language? • use a grammar and/or • tutorial examples (eg Racket Guide Chapter 3) • show just the key constructs Why are these operations sufficient Convince YL is expressive given goals from previous slide. Notably, which types and operations are not in YL? Brag how you simplified YL without losing expressiveness.

  4. Example program in YL Show us an example of a typical program in YL • must be more than hello world • if too big show a descriptive code fragment Walk us through the code • make sure we can all follow the code logic • a figure may be worth 210 words

  5. Implementation How are you implementing YL? • do you have an internal representation (IR) such as an AST that is traversed by the interpreter? • or do you map YL constructs to semantics methods? • or do you generate code that is executed to evaluate the source YL program? A figure or key fragments of the interpreter • brainf*dge is a good example of highlighting key ideas Screenshot of a demo • you should have a skeleton of the interpreter running

  6. Questions you should have some answer to: How will you make YL programs partial? adding holes will define a candidate space of programs How will you search the candidate space translation to formulas and constraint solving?

  7. Notes Recall that we will develop the project in these steps • design a language (and write some programs) • build an interpreter (run these programs) • introduce holes to language (write some sketches) • write translator to a formula (synthesize programs) • write a code generator (run on target machine/API) Why synthesize in YL and not in, say, C? C is harder to compile to formulas; formulas are bigger; the candidate space is bigger. It’s easier to codegen C code from YL if you need the C code.

More Related