fjyswan Dr. Philip Cannata 1
|
|
- Shannon Burke
- 5 years ago
- Views:
Transcription
1 fjyswan Dr. Philip Cannata 1
2 10 High Level Languages This Course Jython in Java Java (Object Oriented) Relation ASP RDF (Horn Clause Deduction, Semantic Web) Dr. Philip Cannata 2
3 Dr. Philip Cannata 3
4 fjyswan $ cat tests/demo.py ; dist/bin/jython ast/astview.py tests/demo.py MAKECONNECT URL jdbc:oracle:thin:@rising-sun.microlab.cs.utexas.edu:1521:orcl UNAME cs345_50 PWORD cs345_50p; DROP TABLE NEWTEST1; # CREATE TABLE NEWTEST1 (VAL1 NUMBER, VAL2 NUMBER, VAL3 NUMBER); x=3 for i in [2, 4, 7]: INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES ((lambda x:x+1) (4), i, x); print (SELECT * FROM NEWTEST1;) print (SELECT VAL2 FROM NEWTEST1;) print (SELECT VAL1, VAL2 FROM NEWTEST1 WHERE VAL3 = x;) fjyswan files ('Module', ('body', ('Expr (1,0)', ('value', ('Connection (1,0)', ('elts',), ('ctx', ('Load',))))), ('Expr (2,0)', ('value', ('Tuple (2,0)', ('elts',), ('ctx', ('Load',))))), ('Assign (4,0)', ('targets', ('Name (4,0)', ('id', 'x'), ('ctx', ('Store',)))), ('value', ('Num (4,2)', ('n', 3)))), ('For (5,0)', ('target', ('Name (5,4)', ('id', 'i'), ('ctx', ('Store',)))), ('iter', ('List (5,9)', ('elts', ('Num (5,10)', ('n', 2)), ('Num (5,13)', ('n', 4)), ('Num (5,16)', ('n', 7))), ('ctx', ('Load',)))), ('body', ('Expr (6,1)', ('value', ('Tuple (6,1)', ('elts', ('Call (6,49)', ('func', ('Lambda (6,50)', ('args', ('arguments', ('args', ('Name (6,57)', ('id', 'x'), ('ctx', ('Param',)))), ('vararg', None), ('kwarg', None), ('defaults',))), ('body', ('BinOp (6,59)', ('left', ('Name (6,59)', ('id', 'x'), ('ctx', ('Load',)))), ('op', ('Add',)), ('right', ('Num (6,61)', ('n', 1))))))), ('args', ('Num (6,65)', ('n', 4))), ('keywords',), ('starargs', None), ('kwargs', None)), ('Name (6,69)', ('id', 'i'), ('ctx', ('Load',))), ('Name (6,72)', ('id', 'x'), ('ctx', ('Load',)))), ('ctx', ('Load',)))))), ('orelse',)), ('Print (7,0)', ('dest', None), ('values', ('Tuple (7,7)', ('elts',), ('ctx', ('Load',)))), ('nl', True)), ('Print (8,0)', ('dest', None), ('values', ('Tuple (8,7)', ('elts',), ('ctx', ('Load',)))), ('nl', True)), ('Print (9,0)', ('dest', None), ('values', ('Tuple (9,7)', ('elts', ('Name (9,52)', ('id', 'x'), ('ctx', ('Load',)))), ('ctx', ('Load',)))), ('nl', True)))) AST $ find. -type f -print./build.xml./extlibs/jsqlparser./extlibs/jsqlparser.jar./extlibs/meta-inf./extlibs/ojdbc6.jar./fjyswanreadme.txt./grammar/python.g We ll discuss the ones in bold first../src/org/python/antlr/ast/connection.java./src/org/python/antlr/ast/tuple.java./src/org/python/antlr/ast/visitorbase.java./src/org/python/antlr/ast/visitorif.java./src/org/python/compiler/code.java./src/org/python/compiler/codecompiler.java./src/org/python/core/pytuple.java./tests/astdemo.py./tests/demo.py Dr. Philip Cannata 4
5 Interpretation output $ dist/bin/jython tests/demo.py DROP TABLE NEWTEST1 INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 2, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (1, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (2, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (3, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 4, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (4, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (5, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (6, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1 (VAL1, VAL2, VAL3) VALUES (5, 7, 3) INSERT INTO NEWTEST1_RDF_DATA VALUES (7, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (8, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' INSERT INTO NEWTEST1_RDF_DATA VALUES (9, SDO_RDF_TRIPLE_S('NEWTEST1_CS345_RICK', ' ' ' Dr. Philip Cannata 5
6 SELECT * FROM NEWTEST1 SQL SPARQL SELECT sub, pred, obj FROM TABLE(SEM_MATCH('(?sub?pred?obj)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('',' null)) (('SUB', 'PRED', 'OBJ'), (' ' ' (' WTEST1/1', ' ' (' ' ' (' ' ' (' rg/newtest1/2', ' ' (' ' 3', ' (' ' ' (' ple.org/newtest1/3', ' ' (' ' 1/VAL3', ' SELECT VAL2 FROM NEWTEST1 SELECT b FROM TABLE(SEM_MATCH('(?sub :VAL2?b)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('',' null)) (('B',), (' (' (' SELECT VAL1, VAL2 FROM NEWTEST1 WHERE VAL3 = 3 SELECT b, c FROM TABLE(SEM_MATCH('(?sub :VAL1?b) (?sub :VAL2?c) (?sub :VAL3 :3)', SEM_Models('NEWTEST1_CS345_RICK'), null, SEM_ALIASES(SEM_ALIAS('',' null)) (('B', 'C'), (' ' (' ' ('w ww.example.org/newtest1/5', ' Dr. Philip Cannata 6
7 MAKECONNECT Python.g Dr. Philip Cannata 7
8 MAKECONNECT Python.g Dr. Philip Cannata 8
9 MAKECONNECT Python.g Dr. Philip Cannata 9
10 MAKECONNECT Python.g Dr. Philip Cannata 10
11 MAKECONNECT Python.g Dr. Philip Cannata 11
12 MAKECONNECT Python.g Dr. Philip Cannata 12
13 Connection.java Dr. Philip Cannata 13
14 Connection.java Dr. Philip Cannata 14
15 VisitorBase.java Dr. Philip Cannata 15
16 VisitorBase.java Dr. Philip Cannata 16
17 Code.java Dr. Philip Cannata 17
18 CodeCompiler.java Dr. Philip Cannata 18
19 CodeCompiler.java Dr. Philip Cannata 19
20 CodeCompiler.java Dr. Philip Cannata 20
21 SELECT Python.g Dr. Philip Cannata 21
22 SELECT Python.g Dr. Philip Cannata 22
23 fjyswan files $ find. -type f -print./build.xml./extlibs/jsqlparser./extlibs/jsqlparser.jar./extlibs/meta-inf./extlibs/ojdbc6.jar./fjyswanreadme.txt./grammar/python.g./src/org/python/antlr/ast/connection.java./src/org/python/antlr/ast/tuple.java./src/org/python/antlr/ast/visitorbase.java./src/org/python/antlr/ast/visitorif.java./src/org/python/compiler/code.java./src/org/python/compiler/codecompiler.java./src/org/python/core/pytuple.java./tests/astdemo.py./tests/demo.py Tuple.java and PyTuple.java Dr. Philip Cannata 23
24 Tuple.java Dr. Philip Cannata 24
25 Tuple.java Dr. Philip Cannata 25
26 CodeCompiler.java Dr. Philip Cannata 26
27 PyTuple.java Dr. Philip Cannata 27
28 PyTuple.java Dr. Philip Cannata 28
29 PyTuple.java Dr. Philip Cannata 29
30 PyTuple.java Dr. Philip Cannata 30
31 PyTuple.java Continues until line 319 Dr. Philip Cannata 31
32 fjyswanreadme.txt fjyswan to connect to a database in fjyswan use the syntax "MAKECONNECT URL $url UNAME $username PWORD $password;" example: MAKECONNECT URL jdbc:oracle:thin:@rising-sun.microlab.cs.utexas.edu:1521:orcl UNAME CS347_RICK PWORD CS347_RICK; this puts a Connection node on the AST which sets a variable in the visitor when called that is passed to all SQL tuple constructors. SQL statements passed to a tuple are parsed into SPARQL using jsqlparser. currently supported are the creation of tables ex : CREATE TABLE NEWTESTER (VAL1 NUMBER, VAL2 NUMBER, VAL3 NUMBER); addition of elements into tables ex : INSERT INTO NEWTESTER (VAL1, VAL2, VAL3) VALUES (1, 2, 3); select statements including equality where clauses ex : SELECT * FROM NEWTESTER; ex : SELECT VAL2 FROM NEWTESTER; ex : SELECT VAL1, VAL2 FROM NEWTESTER WHERE VAL1 = 1; tests/demo.py demonstrates these capabilities and tests/astdemo.py displays the abstract syntax tree after a connection statement. Dr. Philip Cannata 32
33 Backup Slides of Old Implementation Dr. Philip Cannata 33
34 Backup slides about old sql insert implementation Dr. Philip Cannata 34
35 Backup slides about old sql insert implementation Dr. Philip Cannata 35
36 Backup slides about old sql insert implementation Dr. Philip Cannata 36
37 Backup slides about old sql insert implementation Dr. Philip Cannata 37
38 Backup slides about old sql insert implementation Dr. Philip Cannata 38
Reminder About Functions
Reminder About Functions (let ((z 17)) (let ((z 3) (a ) (x (lambda (x y) (- x (+ y z))))) (let ((z 0) (a )) (x z a)))) int h, i; void B(int w) { int j, k; i = 2*w; w = w+1; void A(int x, int y) { bool
More informationProgramming Languages. Dr. Philip Cannata 1
Programming Languages Dr. Philip Cannata 0 High Level Languages This Course Java (Object Oriented) Jython in Java Relation ASP RDF (Horn Clause Deduction, Semantic Web) Dr. Philip Cannata Dr. Philip Cannata
More informationProgramming Languages. Dr. Philip Cannata 1
Programming Languages Dr. Philip Cannata 0 High Level Languages This Course Jython in Java Java (Object Oriented) ACL (Propositional Induction) Relation Algorithmic Information Theory (Information Compression
More informationFunctions and Recursion. Dr. Philip Cannata 1
Functions and Recursion Dr. Philip Cannata 1 10 High Level Languages This Course Java (Object Oriented) Jython in Java Relation ASP RDF (Horn Clause Deduction, Semantic Web) Dr. Philip Cannata 2 let transformation,
More informationFall 2012 CS345 Project Requirements and Suggestions (Version 4)
Fall 2012 CS345 Project Requirements and Suggestions (Version 4) Languages developed or modified for your project should have the following properties unless there is a good reason not to (e.g., you re
More informationFunctions and Recursion
Programming Languages Functions and Recursion Dr. Philip Cannata 1 10 High Level Languages This Course Jython in Java Java (Object Oriented) ACL2 (Propositional Induction) Relation Algorithmic Information
More informationHigh Level Languages. Java (Object Oriented) This Course. Jython in Java. Relation. ASP RDF (Horn Clause Deduction, Semantic Web) Dr.
10 High Level Languages This Course Java (Object Oriented) Jython in Java Relation ASP RDF (Horn Clause Deduction, Semantic Web) Dr. Philip Cannata 1 Dr. Philip Cannata 2 Programming Languages Lexical
More informationProgramming Languages. Dr. Philip Cannata 1
Programming Languages Dr. Philip Cannata 1 10 High Level Languages This Course Jython in Java Java (Object Oriented) ACL2 (Propositional Induction) Relation Algorithmic Information Theory (Information
More informationName SOLUTIONS EID NOTICE: CHEATING ON THE MIDTERM WILL RESULT IN AN F FOR THE COURSE.
CS 345 Fall TTh 2012 Midterm Exam B Name SOLUTIONS EID NOTICE: CHEATING ON THE MIDTERM WILL RESULT IN AN F FOR THE COURSE. 1. [5 Points] Give two of the following three definitions. [2 points extra credit
More informationHigher-Order Functions
Higher-Order Functions 1 Why Functions as Values Abstraction is easier with functions as values abstract over add and sub cases filter, map, etc. What are objects? Callbacks? Separate deffun form becomes
More informationHigher-Order Functions (Part I)
Higher-Order Functions (Part I) 1 Why Functions as Values Abstraction is easier with functions as values abstract over add and sub cases filter, map, etc. What are objects? Callbacks? Separate deffun form
More informationExtending Jython. with SIM, SPARQL and SQL
Extending Jython with SIM, SPARQL and SQL 1 Outline of topics Interesting features of Python and Jython Relational and semantic data models and query languages, triple stores, RDF Extending the Jython
More informationLECTURE 2. Python Basics
LECTURE 2 Python Basics MODULES ''' Module fib.py ''' from future import print_function def even_fib(n): total = 0 f1, f2 = 1, 2 while f1 < n: if f1 % 2 == 0: total = total + f1 f1, f2 = f2, f1 + f2 return
More informationPrinciples of Programming Languages
Principles of Programming Languages www.cs.bgu.ac.il/~ppl172 Lesson 6 - Defining a Programming Language Bottom Up Collaboration and Management - Elements of Programming Dana Fisman 1 What we accomplished
More informationNames and Types. standard hue names. Dr. Philip Cannata 1
Names and Types standard hue names Dr. Philip Cannata 1 10 High Level Languages This Course Jython in Java Java (Object Oriented) ACL2 (Propositional Induction) Relation Algorithmic Information Theory
More informationRecap: Functions as first-class values
Recap: Functions as first-class values Arguments, return values, bindings What are the benefits? Parameterized, similar functions (e.g. Testers) Creating, (Returning) Functions Iterator, Accumul, Reuse
More informationFunctions & First Class Function Values
Functions & First Class Function Values PLAI 1st ed Chapter 4, PLAI 2ed Chapter 5 The concept of a function is itself very close to substitution, and to our with form. Consider the following morph 1 {
More informationCS153: Compilers Lecture 15: Local Optimization
CS153: Compilers Lecture 15: Local Optimization Stephen Chong https://www.seas.harvard.edu/courses/cs153 Announcements Project 4 out Due Thursday Oct 25 (2 days) Project 5 out Due Tuesday Nov 13 (21 days)
More informationASTs, Objective CAML, and Ocamlyacc
ASTs, Objective CAML, and Ocamlyacc Stephen A. Edwards Columbia University Fall 2012 Parsing and Syntax Trees Parsing decides if the program is part of the language. Not that useful: we want more than
More informationCOMP519 Web Programming Lecture 20: Python (Part 4) Handouts
COMP519 Web Programming Lecture 20: Python (Part 4) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool Contents
More informationPrinciples of Programming Languages
Principles of Programming Languages Lesson 14 Type Checking Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172 1 Type Checking We return to the issue of type safety we discussed informally,
More information7. Introduction to Denotational Semantics. Oscar Nierstrasz
7. Introduction to Denotational Semantics Oscar Nierstrasz Roadmap > Syntax and Semantics > Semantics of Expressions > Semantics of Assignment > Other Issues References > D. A. Schmidt, Denotational Semantics,
More informationThese notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without
These notes are intended exclusively for the personal usage of the students of CS352 at Cal Poly Pomona. Any other usage is prohibited without previous written authorization. 1 2 The simplest way to create
More information*Java has included a feature that simplifies the creation of
Java has included a feature that simplifies the creation of methods that need to take a variable number of arguments. This feature is called as varargs (short for variable-length arguments). A method that
More informationEvolution of Fjyswan. Extended SQL Grammar and SQL to SPARQL Translation. Kuba Szulaczkowski Andrew Oldag
Evolution of Fjyswan Extended SQL Grammar and SQL to SPARQL Translation Kuba Szulaczkowski Andrew Oldag Original Fjyswan SQL commands are dissected into strings and expressions Expressions are evaluated,
More informationParsing Scheme (+ (* 2 3) 1) * 1
Parsing Scheme + (+ (* 2 3) 1) * 1 2 3 Compiling Scheme frame + frame halt * 1 3 2 3 2 refer 1 apply * refer apply + Compiling Scheme make-return START make-test make-close make-assign make- pair? yes
More informationCIS192 Python Programming
CIS192 Python Programming Functional Programming Robert Rand University of Pennsylvania February 03, 2016 Robert Rand (University of Pennsylvania) CIS 192 February 03, 2016 1 / 23 Outline 1 Function Arguments
More informationSyntax and Grammars 1 / 21
Syntax and Grammars 1 / 21 Outline What is a language? Abstract syntax and grammars Abstract syntax vs. concrete syntax Encoding grammars as Haskell data types What is a language? 2 / 21 What is a language?
More informationCIS192: Python Programming
CIS192: Python Programming Functions and Functional Programming Harry Smith University of Pennsylvania January 25, 2018 Harry Smith (University of Pennsylvania) CIS 192 Lecture 3 January 25, 2018 1 / 39
More informationThe syntax of the OUN language
The syntax of the OUN language Olaf Owe Department of Informatics, University of Oslo, Norway February 21, 2002 Contents 1 The OUN language 1 1.1 Interface and contract definition.................. 2 1.2
More informationProject Compiler. CS031 TA Help Session November 28, 2011
Project Compiler CS031 TA Help Session November 28, 2011 Motivation Generally, it s easier to program in higher-level languages than in assembly. Our goal is to automate the conversion from a higher-level
More informationKong Documentation. Release Hong Minhee
Kong Documentation Release 0.1.0 Hong Minhee August 18, 2014 Contents 1 kong Tofu implementation 3 1.1 kong.ast Abstract Syntax Tree.................................. 3 1.2 kong.parser Tofu parser.....................................
More informationCompiler Design (40-414)
Compiler Design (40-414) Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007 Evaluation: Midterm Exam 35% Final Exam 35% Assignments and Quizzes 10% Project
More informationCMSC 330: Organization of Programming Languages. Operational Semantics
CMSC 330: Organization of Programming Languages Operational Semantics Notes about Project 4, Parts 1 & 2 Still due today (7/2) Will not be graded until 7/11 (along with Part 3) You are strongly encouraged
More informationToday. Assignments. Lecture Notes CPSC 326 (Spring 2019) Operator Associativity & Precedence. AST Navigation. HW4 out (due next Thurs)
Today Operator Associativity & Precedence AST Navigation Assignments HW4 out (due next Thurs) S. Bowers 1 of 10 Generating Abstract Syntax Trees (ASTs) 1. The parsing step both checks syntax and builds
More informationCS2304: Python for Java Programmers. CS2304: Advanced Function Topics
CS2304: Advanced Function Topics Functions With An Arbitrary Number of Parameters Let s say you wanted to create a function where you don t know the exact number of parameters. Python gives you a few ways
More informationBuilding the Abstract Syntax Trees
Building the Abstract Syntax Trees Lecture 23 Section 5.3 Robb T. Koether Hampden-Sydney College Wed, Mar 18, 2015 Robb T. Koether (Hampden-Sydney College) Building the Abstract Syntax Trees Wed, Mar 18,
More informationCharming Python with Static Typechecking
Wesleyan University The Honors College Charming Python with Static Typechecking by Jeff Ruberg Class of 2012 A thesis submitted to the faculty of Wesleyan University in partial fulfillment of the requirements
More informationSoftware Verification : Introduction
Software Verification : Introduction Ranjit Jhala, UC San Diego April 4, 2013 What is Algorithmic Verification? Algorithms, Techniques and Tools to ensure that Programs Don t Have Bugs (What does that
More informationUser-defined Functions. Conditional Expressions in Scheme
User-defined Functions The list (lambda (args (body s to a function with (args as its argument list and (body as the function body. No quotes are needed for (args or (body. (lambda (x (+ x 1 s to the increment
More informationCIS192 Python Programming
CIS192 Python Programming Functional Programming Eric Kutschera University of Pennsylvania January 30, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 January 30, 2015 1 / 31 Questions Homework
More informationFrom FP to OOP. Start with data: class Posn { int x; int y; Posn(int x, int y) { this.x = x; this.y = y; } }
From FP to OOP Start with data: ; A posn is ; (make-posn num num) (define-struct posn (x y)) class Posn { int x; int y; Posn(int x, int y) { this.x = x; this.y = y; 1 From FP to OOP Start with data: ;
More informationStreams, Delayed Evaluation and a Normal Order Interpreter. CS 550 Programming Languages Jeremy Johnson
Streams, Delayed Evaluation and a Normal Order Interpreter CS 550 Programming Languages Jeremy Johnson 1 Theme This lecture discusses the stream model of computation and an efficient method of implementation
More informationProcedures. EOPL3: Section 3.3 PROC and App B: SLLGEN
Procedures EOPL3: Section 3.3 PROC and App B: SLLGEN The PROC language Expression ::= proc (Identifier) Expression AST: proc-exp (var body) Expression ::= (Expression Expression) AST: call-exp (rator rand)
More informationLecture 09: Data Abstraction ++ Parsing is the process of translating a sequence of characters (a string) into an abstract syntax tree.
Lecture 09: Data Abstraction ++ Parsing Parsing is the process of translating a sequence of characters (a string) into an abstract syntax tree. program text Parser AST Processor Compilers (and some interpreters)
More informationCSCC24 Functional Programming Scheme Part 2
CSCC24 Functional Programming Scheme Part 2 Carolyn MacLeod 1 winter 2012 1 Based on slides from Anya Tafliovich, and with many thanks to Gerald Penn and Prabhakar Ragde. 1 The Spirit of Lisp-like Languages
More informationCSE 341 Section 7. Eric Mullen Spring Adapted from slides by Nicholas Shahan, Dan Grossman, and Tam Dang
CSE 341 Section 7 Eric Mullen Spring 2017 Adapted from slides by Nicholas Shahan, Dan Grossman, and Tam Dang Outline Interpreting LBI (Language Being Implemented) Assume Correct Syntax Check for Correct
More information;;; Determines if e is a primitive by looking it up in the primitive environment. ;;; Define indentation and output routines for the output for
Page 1/11 (require (lib "trace")) Allow tracing to be turned on and off (define tracing #f) Define a string to hold the error messages created during syntax checking (define error msg ""); Used for fancy
More informationcs173: Programming Languages
The questions on this exam are worth 100 points. Exam rules: cs173: Programming Languages Midterm Exam Fall 2000 Your responses to this exam are due before the start of class on 2000-11-08. If you believe
More informationCS 314 Principles of Programming Languages. Lecture 16
CS 314 Principles of Programming Languages Lecture 16 Zheng Zhang Department of Computer Science Rutgers University Friday 28 th October, 2016 Zheng Zhang 1 CS@Rutgers University Class Information Reminder:
More informationEnvironments
Environments PLAI Chapter 6 Evaluating using substitutions is very inefficient To work around this, we want to use a cache of substitutions. We begin evaluating with no cached substitutions, then collect
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 16: Functional Programming Zheng (Eddy Zhang Rutgers University April 2, 2018 Review: Computation Paradigms Functional: Composition of operations on data.
More informationRacket: Macros. Advanced Functional Programming. Jean-Noël Monette. November 2013
Racket: Macros Advanced Functional Programming Jean-Noël Monette November 2013 1 Today Macros pattern-based macros Hygiene Syntax objects and general macros Examples 2 Macros (According to the Racket Guide...)
More informationScala : an LLVM-targeted Scala compiler
Scala : an LLVM-targeted Scala compiler Da Liu, UNI: dl2997 Contents 1 Background 1 2 Introduction 1 3 Project Design 1 4 Language Prototype Features 2 4.1 Language Features........................................
More informationBelow are example solutions for each of the questions. These are not the only possible answers, but they are the most common ones.
6.001, Fall Semester, 2002 Quiz II Sample solutions 1 MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs
More informationCSE P 501 Compilers. Implementing ASTs (in Java) Hal Perkins Autumn /20/ Hal Perkins & UW CSE H-1
CSE P 501 Compilers Implementing ASTs (in Java) Hal Perkins Autumn 2009 10/20/2009 2002-09 Hal Perkins & UW CSE H-1 Agenda Representing ASTs as Java objects Parser actions Operations on ASTs Modularity
More informationAn Explicit-Continuation Metacircular Evaluator
Computer Science (1)21b (Spring Term, 2018) Structure and Interpretation of Computer Programs An Explicit-Continuation Metacircular Evaluator The vanilla metacircular evaluator gives a lot of information
More informationLecture 14 Sections Mon, Mar 2, 2009
Lecture 14 Sections 5.1-5.4 Hampden-Sydney College Mon, Mar 2, 2009 Outline 1 2 3 4 5 Parse A parse tree shows the grammatical structure of a statement. It includes all of the grammar symbols (terminals
More informationCompilers. Type checking. Yannis Smaragdakis, U. Athens (original slides by Sam
Compilers Type checking Yannis Smaragdakis, U. Athens (original slides by Sam Guyer@Tufts) Summary of parsing Parsing A solid foundation: context-free grammars A simple parser: LL(1) A more powerful parser:
More informationCMPT 379 Compilers. Parse trees
CMPT 379 Compilers Anoop Sarkar http://www.cs.sfu.ca/~anoop 10/25/07 1 Parse trees Given an input program, we convert the text into a parse tree Moving to the backend of the compiler: we will produce intermediate
More informationVisitor Pattern versus Parse-Translate-Combine. Comparison of code readability in ReL for translation from SQL to SPARQL
Visitor Pattern versus Parse-Translate-Combine Comparison of code readability in ReL for translation from SQL to SPARQL Parse-Translate-Combine Given a valid SQL command string, extract tokens of interest
More informationCS 360 Programming Languages Interpreters
CS 360 Programming Languages Interpreters Implementing PLs Most of the course is learning fundamental concepts for using and understanding PLs. Syntax vs. semantics vs. idioms. Powerful constructs like
More informationIntroduction to Syntax Analysis Recursive-Descent Parsing
Introduction to Syntax Analysis Recursive-Descent Parsing CS F331 Programming Languages CSCE A331 Programming Language Concepts Lecture Slides Friday, February 10, 2017 Glenn G. Chappell Department of
More informationPython A Technical Introduction. James Heliotis Rochester Institute of Technology December, 2009
Python A Technical Introduction James Heliotis Rochester Institute of Technology December, 2009 Background & Overview Beginnings Developed by Guido Van Rossum, BDFL, in 1990 (Guido is a Monty Python fan.)
More informationFunctional Programming. Pure Functional Programming
Functional Programming Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends only on the values of its sub-expressions (if any).
More informationCS152 Programming Language Paradigms Prof. Tom Austin, Fall Syntax & Semantics, and Language Design Criteria
CS152 Programming Language Paradigms Prof. Tom Austin, Fall 2014 Syntax & Semantics, and Language Design Criteria Lab 1 solution (in class) Formally defining a language When we define a language, we need
More informationSemantics of programming languages
Semantics of programming languages Informatics 2A: Lecture 27 John Longley School of Informatics University of Edinburgh jrl@inf.ed.ac.uk 21 November, 2011 1 / 19 1 2 3 4 2 / 19 Semantics for programming
More informationLab 2 Tutorial (An Informative Guide)
Lab 2 Tutorial (An Informative Guide) Jon Eyolfson University of Waterloo October 18 - October 22, 2010 Outline Introduction Good News Lexer and Parser Infrastructure Your Task Example Conclusion Jon Eyolfson
More informationCS 320: Concepts of Programming Languages
CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 03: Bare-Bones Haskell Continued: o Function Application = Rewriting by Pattern Matching o Haskell
More informationCS 314 Principles of Programming Languages
CS 314 Principles of Programming Languages Lecture 17: Functional Programming Zheng (Eddy Zhang Rutgers University April 4, 2018 Class Information Homework 6 will be posted later today. All test cases
More informationStructure and Interpretation of Computer Programs
CS 6A Spring 203 Structure and Interpretation of Computer Programs Final Solutions INSTRUCTIONS You have 3 hours to complete the exam. The exam is closed book, closed notes, closed computer, closed calculator,
More informationPython-RHEV Documentation
Python-RHEV Documentation Release 1.0-rc1.13 Geert Jansen August 15, 2016 Contents 1 Tutorial 3 1.1 Connecting to the API.......................................... 3 1.2 Resources and Collections........................................
More informationCSE P 501 Compilers. Implementing ASTs (in Java) Hal Perkins Winter /22/ Hal Perkins & UW CSE H-1
CSE P 501 Compilers Implementing ASTs (in Java) Hal Perkins Winter 2008 1/22/2008 2002-08 Hal Perkins & UW CSE H-1 Agenda Representing ASTs as Java objects Parser actions Operations on ASTs Modularity
More informationThreads. {seqn {spawn EXPR 1 } {spawn EXPR 2 }} Runs EXPR 1 and EXPR 2 in any order, even interleaved with each other
Sequential Programs So far, the language that we ve implemented is deterministic. Running a program multiple times (or computing things slightly more quickly or slowly) does not change the result of the
More informationSCHEME AND CALCULATOR 5b
SCHEME AND CALCULATOR 5b COMPUTER SCIENCE 6A July 25, 203 In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,
More informationCOMP284 Scripting Languages Lecture 11: PHP (Part 3) Handouts
COMP284 Scripting Languages Lecture 11: PHP (Part 3) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool
More informationCS61A Midterm 2 Review (v1.1)
Spring 2006 1 CS61A Midterm 2 Review (v1.1) Basic Info Your login: Your section number: Your TA s name: Midterm 2 is going to be held on Tuesday 7-9p, at 1 Pimentel. What will Scheme print? What will the
More informationCOMP519 Web Programming Lecture 27: PHP (Part 3) Handouts
COMP519 Web Programming Lecture 27: PHP (Part 3) Handouts Ullrich Hustadt Department of Computer Science School of Electrical Engineering, Electronics, and Computer Science University of Liverpool Control
More informationTopic 3: Syntax Analysis I
Topic 3: Syntax Analysis I Compiler Design Prof. Hanjun Kim CoreLab (Compiler Research Lab) POSTECH 1 Back-End Front-End The Front End Source Program Lexical Analysis Syntax Analysis Semantic Analysis
More informationSimple Lisp. Alonzo Church. John McCarthy. Turing. David Hilbert, Jules Richard, G. G. Berry, Georg Cantor, Bertrand Russell, Kurt Gödel, Alan
Alonzo Church John McCarthy Simple Lisp David Hilbert, Jules Richard, G. G. Berry, Georg Cantor, Bertrand Russell, Kurt Gödel, Alan Turing Dr. Philip Cannata 1 Simple Lisp See the class website for a pdf
More informationIntroduction to Python programming, II
Grid Computing Competence Center Introduction to Python programming, II Riccardo Murri Grid Computing Competence Center, Organisch-Chemisches Institut, University of Zurich Nov. 16, 2011 Today s class
More informationCSE 341 Section 7. Ethan Shea Autumn Adapted from slides by Nicholas Shahan, Dan Grossman, Tam Dang, and Eric Mullen
CSE 341 Section 7 Ethan Shea Autumn 2018 Adapted from slides by Nicholas Shahan, Dan Grossman, Tam Dang, and Eric Mullen Outline Interpreting MUPL Assume Correct Syntax Check for Correct Semantics Evaluating
More informationSCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015
SCHEME 7 COMPUTER SCIENCE 61A October 29, 2015 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,
More informationCS 480. Lisp J. Kosecka George Mason University. Lisp Slides
CS 480 Lisp J. Kosecka George Mason University Lisp Slides Symbolic Programming Symbols: +, -, 1, 2 etc. Symbolic expressions: (+ 1 2), (+ (* 3 4) 2) Symbolic programs are programs that manipulate symbolic
More informationLecture #15: Generic Functions and Expressivity. Last modified: Wed Mar 1 15:51: CS61A: Lecture #16 1
Lecture #15: Generic Functions and Expressivity Last modified: Wed Mar 1 15:51:48 2017 CS61A: Lecture #16 1 Consider the function find: Generic Programming def find(l, x, k): """Return the index in L of
More informationProgramming Languages!
!!! Programming Languages! Genesis of Some Programming Languages! (My kind of Fiction)! Dr. Philip Cannata 1 10 High Level Languages This Course Java (Object Oriented) Jython in Java Relation ASP RDF (Horn
More informationType Declarations. [... <id> τ... ] <id> : τ. Γ <num> : number. Γ true : boolean. Γ false : boolean. Γ e 1 : number.
Type Inference 1 Type Declarations Γ : number Γ true : boolean Γ e 1 : number [... τ... ] : τ Γ false : boolean Γ e 2 : number Γ {+ e 1 e 2 } : number Γ e 1 : boolean Γ e 2 : τ 0 Γ e 3
More information1 Lexical Considerations
Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler
More informationA Third Look At ML. Chapter Nine Modern Programming Languages, 2nd ed. 1
A Third Look At ML Chapter Nine Modern Programming Languages, 2nd ed. 1 Outline More pattern matching Function values and anonymous functions Higher-order functions and currying Predefined higher-order
More informationFunctions parameters, scope CS GMU
Functions parameters, scope CS 112 @ GMU Functions function: we can name a batch of statements, to call later. a function can accept some expected number of values to be supplied each time it is called
More informationHandout 2 August 25, 2008
CS 502: Compiling and Programming Systems Handout 2 August 25, 2008 Project The project you will implement will be a subset of Standard ML called Mini-ML. While Mini- ML shares strong syntactic and semantic
More informationModules, Structs, Hashes, and Operational Semantics
CS 152: Programming Language Paradigms Modules, Structs, Hashes, and Operational Semantics Prof. Tom Austin San José State University Lab Review (in-class) Modules Review Modules from HW 1 (in-class) How
More informationA Functional Evaluation Model
A Functional Evaluation Model COS 326 Andrew W. Appel Princeton University slides copyright 2013-2015 David Walker and Andrew W. Appel A Functional Evaluation Model In order to be able to write a program,
More informationCool Abstract Syntax Trees
constructors phyla classes lists Cool Abstract Syntax Trees Cool ASTs [Bono] 1 Cool AST overview review: abstract syntax tree is a concrete data structure we build while parsing one C++ class per Cool
More informationFP Foundations, Scheme
FP Foundations, Scheme In Text: Chapter 15 1 Functional Programming -- Prelude We have been discussing imperative languages C/C++, Java, Fortran, Pascal etc. are imperative languages Imperative languages
More informationCisco IOS Shell. Finding Feature Information. Prerequisites for Cisco IOS.sh. Last Updated: December 14, 2012
Cisco IOS Shell Last Updated: December 14, 2012 The Cisco IOS Shell (IOS.sh) feature provides shell scripting capability to the Cisco IOS command-lineinterface (CLI) environment. Cisco IOS.sh enhances
More informationWriting a Lexer. CS F331 Programming Languages CSCE A331 Programming Language Concepts Lecture Slides Monday, February 6, Glenn G.
Writing a Lexer CS F331 Programming Languages CSCE A331 Programming Language Concepts Lecture Slides Monday, February 6, 2017 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks
More informationCS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square)
CS 4240: Compilers and Interpreters Project Phase 1: Scanner and Parser Due Date: October 4 th 2015 (11:59 pm) (via T-square) Introduction This semester, through a project split into 3 phases, we are going
More informationSemantic Analysis Attribute Grammars
Semantic Analysis Attribute Grammars Martin Sulzmann Martin Sulzmann Semantic Analysis Attribute Grammars 1 / 18 Syntax versus Semantics Syntax Analysis When is a program syntactically valid? Formalism:
More informationSlides by: Ms. Shree Jaswal
Slides by: Ms. Shree Jaswal A trigger is a statement that is executed automatically by the system as a side effect of a modification to the database. To design a trigger mechanism, we must: Specify the
More information