Templates of slides for P2 1. A very brief refresher of your problem Describe in English -what artifacts (programs, etc) you wish to synthesize, -from.

Slides:



Advertisements
Similar presentations
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Advertisements

8. Code Generation. Generate executable code for a target machine that is a faithful representation of the semantics of the source code Depends not only.
The Efficiency of Algorithms Chapter 4 Copyright ©2012 by Pearson Education, Inc. All rights reserved.
1 Compiler Construction Intermediate Code Generation.
ISBN Chapter 3 Describing Syntax and Semantics.
CS 355 – Programming Languages
Software. What Is Software? software –Also called Computer programs –Are a list of instructions –Instructions are called code –CPU performs the instructions.
CPSC Compiler Tutorial 9 Review of Compiler.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages Chapter 3 : Describing Syntax and Semantics Operational Semantics.
Aalborg Media Lab 21-Jun-15 Software Design Lecture 1 “ Introduction to Java and OOP”
HOW TO EXCEL ON ESSAY EXAMS San José State University Writing Center Dr. Jim Lobdell.
Machine Learning: Symbol-Based
Slide 1 Chapter 3 Attribute Grammars. Slide 2 Attribute Grammars Certain language structures cannot be described using EBNF. Attribute grammars are extensions.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Describing Syntax and Semantics
1.1 Introduction to Language Processor
CIS607, Fall 2005 Semantic Information Integration Article Name: Clio Grows Up: From Research Prototype to Industrial Tool Name: DH(Dong Hwi) kwak Date:
Model Answer of A Pie Chart.
ANTLR.
CS 331, Principles of Programming Languages Introduction.
CSC271 Database Systems Lecture # 21. Summary: Previous Lecture  Phases of database SDLC  Prototyping (optional)  Implementation  Data conversion.
Templates of slides for P3 1. A brief update on your problem (important) Describe in English -what artifacts (programs, etc) will you synthesize, -what.
2.2 A Simple Syntax-Directed Translator Syntax-Directed Translation 2.4 Parsing 2.5 A Translator for Simple Expressions 2.6 Lexical Analysis.
1 Abstract Syntax Tree--motivation The parse tree –contains too much detail e.g. unnecessary terminals such as parentheses –depends heavily on the structure.
Semantic Analysis Legality checks –Check that program obey all rules of the language that are not described by a context-free grammar Disambiguation –Name.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 10, 10/30/2003 Prof. Roy Levow.
Lexical Analysis - An Introduction Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at.
Compiler course 1. Introduction. Outline Scope of the course Disciplines involved in it Abstract view for a compiler Front-end and back-end tasks Modules.
Problem Definition Chapter 7. Chapter Objectives Learn: –The 8 steps of experienced problem solvers –How to collect and analyze information and data.
FPGA-Based System Design: Chapter 6 Copyright  2004 Prentice Hall PTR Topics n Design methodologies.
COMPILER OVERVIEW. Compiler Phases  Syntactic Analysis (Lexing, Parsing)  c = (a + b) * (a + b);
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
Synthesis with the Sketch System D AY 1 Armando Solar-Lezama.
CS 461 – Sept. 19 Last word on finite automata… –Scanning tokens in a compiler –How do we implement a “state” ? Chapter 2 introduces the 2 nd model of.
Abstractions and small languages in synthesis CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California,
CIS 120 Problem Solving Programming Java. Problem Solving Problem-Solving: the process of defining a problem, searching for relevant information and resources.
Activity Set 2.3 PREP PPTX Visual Algebra for Teachers.
Hop Operational Semantics
Algorithm Analysis Data Structures and Algorithms (60-254)
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
Big Ideas in Mathematics Chapter Three
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
ISBN Chapter 3 Describing Semantics.
Semantics In Text: Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
Chapter 1 Introduction Study Goals: Master: the phases of a compiler Understand: what is a compiler Know: interpreter,compiler structure.
Vocabulary Mapping Students can participate in two tiers of mapping a vocabulary word or phrase with depth and complexity. Use this powerpoint to review.
Overview of Previous Lesson(s) Over View 3 Model of a Compiler Front End.
Application of Formal Method on Game Mechanism Design Ye Fang, Swarat Chaudhuri, Moshe Vardi.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Overview of Compilation Prepared by Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Programming Language Principles Lecture 2.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Open Source Compiler Construction (for the JVM)
Compiler Design (40-414) Main Text Book:
Topic: Programming Languages and their Evolution + Intro to Scratch
Context-Sensitive Analysis
A Simple Syntax-Directed Translator
CS 536 / Fall 2017 Introduction to programming languages and compilers
A programming language
Software Development Process
Templates of slides for P4 Experiments with your synthesizer
The Efficiency of Algorithms
Social Practice of the language: Describe and share information
Visual Algebra for Teachers
Presentation transcript:

Templates of slides for P2 1

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] 2

Your Language (YL): definition and rationale What data types and operations are in your language? -use a grammar and/orgrammar -tutorial examples (eg Racket Guide Chapter 3)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. 3

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 2 10 words 4

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 5

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? 6

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. 7