Programming Languages
Dr. Philip Cannata
1
Class Website
http://www.cs.utexas.edu/users/cannata/cs345/
Dr. Philip Cannata
2
Administration and Policies
Textbooks (Required):
Programming Languages: Application and Interpretation by Shriram Krishnamurthi - Free online book
http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs
Textbooks (Recommended):
"Generating Parsers with JavaCC, Second Edition" by Tom Copeland, Published by Centennial Books, Alexandria, VA. ISBN 0-9762214-3-8.
"The Definitive Antlr Reference: Building Domain-Specific Languages" Terence Parr (Author) (Pragmatic Programmers) (Paperback)
Grading
Grades will be calculated on the following scale:
A: 90-100; B: 80-89; C: 70--79; D: 60-69; F: 0-59.
Your final grade will be calculated by averaging your performance on Homework, Project(s), Quizzes and Exams with the following weighting:
Homework 20%, Quizzes 15%, Project 15%, Exams 25% each.
The lowest Quiz and Homework grades will be dropped before calculating a final grade.
Quizzes
There will be in class quizzes on a very regular basis. These quizzes will be based on day's course lecture material, readings from the course
texts, and/or homework. Missed quizzes will be given a grade of zero unless there are extenuating circumstances (see below).
Homework
Homework exercises will be assigned with an explicit due date. Homework is to be done individually. Late homework will be given a grade of
zero unless there are extenuating circumstances (see below).
Examinations
There will be two closed book exams, a Mid-Term and a Final. These exams must be taken on the specified date and at the specified time. If
you miss an exam due to extenuating circumstances (see below), a grade will be negotiated for the exam based on a percentage of your
homework, quizzes and other exam scores. Missed exams will be given a grade of zero.
Extenuating Circumstances
If you have difficulty meeting the requirements of this course, fail to hand in an assignment, or miss an exam because of extenuating
circumstances, please advise your instructor in writing (not email) at the earliest possible date so that your situation can be discussed. If you
encounter an unexpected medical or family emergency or a random act of Nature that causes you to miss the due date for homework or miss a
quiz or exam, you must present suitable documentation in writing (not email) to the instructor before special consideration will be given. A file of
all written correspondence will be kept by the instructor and decisions regarding them will be made at the end of the semester.
Dr. Philip Cannata
3
Dr. Philip Cannata
4
10
High Level
Languages
Java (Object Oriented)
This Course
Jython in Java
Relation
ACL2 (Propositional Induction)
Algorithmic Information Theory
(Information Compression and
Randomness) - Kolmogorov
Complexity
Orc (Parallel Computing)
GpH (Parallel Computing)
ASP
RDF (Horn Clause Deduction,
Semantic Web)
Dr. Philip Cannata
5
You may need two brains
Dr. Philip Cannata
6
High Level Languages
Build this using
javacc
Dr. Philip Cannata
7
Relation-based (Functional) Languages
Dr. Philip Cannata
8
The tools you will need to get started
javac
javacc
cygwin (if you’re going to be
using Windows)
ant
jython
See next pages for
downloading and installation
Dr. Philip Cannata
9
Installing javac on Windows
• Download JDK 6 from http://www.oracle.com/technetwork/java/javase/downloads/index.html
This
one
•Change your path environment variable to include the path to javac
Dr. Philip Cannata
10
Installing javacc on Windows
Dr. Philip Cannata
11
Installing javacc on Windows
http://java.net/projects/javacc/
Dr. Philip Cannata
12
Installing javacc on Windows
• Download javacc from http://java.net/projects/javacc/
• I put the zip file in C:\Program Files\Java and extracted it to there. So, javacc is in
C:\Program Files\Java\javacc-5.0\javacc-5.0\bin
• Change your path environment variable to include C:\Program Files\Java\javacc-5.0\javacc-5.0\bin or
whatever your path is. Do the following to do this:
path environment variables are in the System Properties -> Advanced Tab -> Environment
Variables?
Add the javacc path to the front of the existing “path” environment variable followed by a semicolon?
Put double quotes
around $0
• Edit the javacc program as follows:
#!/bin/sh
JAR="`dirname "$0"`/lib/javacc.jar"
case "`uname`" in
CYGWIN*) JAR="`cygpath --windows -- "$JAR"`" ;;
esac
java -classpath "$JAR" javacc "$@"
Dr. Philip Cannata
13
javacc on the CS machines
Greetings,
We've installed javacc, the java compiler compiler. This is a parser generator for
java. See https://javacc.dev.java.net/ for details.
This will be made available on all departmental machines after our nightly cron job
runs this evening. Javacc will be in the default $PATH, so you can access it simply by
running 'javacc' from a terminal.
However, if you need to use the javacc.jar file, you will need to add its location to your
$CLASSPATH environmental variable. I have created a set of shell scripts to ease this
process.
If you use bash, run the following:
source /lusr/share/lib/java/javacc/env.d/append.sh
If you run csh or tcsh, run this instead:
source /lusr/share/lib/java/javacc/env.d/append.csh
Please send mail to gripe if you have any questions.
-jason
Dr. Philip Cannata
14
Installing Cygwin from http://cygwin.com/
Dr. Philip Cannata
15
Download Cygwin Install File (Optional)
Dr. Philip Cannata
16
Download Cygwin Install File (Optional)
1
2
3
4
Dr. Philip Cannata
17
Download Cygwin Install File (Optional)
1
2
3
4
Dr. Philip Cannata
18
Download Cygwin Install File (Optional)
Don’t take the Default.
See next page.
Dr. Philip Cannata
19
Download Cygwin Install File (Optional)
Click here until you
have All Install
Dr. Philip Cannata
20
Download Cygwin Install File (Optional)
Dr. Philip Cannata
21
Installing Cygwin
Dr. Philip Cannata
22
Installing Cygwin
1
2
3
4
Dr. Philip Cannata
23
Installing Cygwin
1
2
3
Dr. Philip Cannata
24
Installing Cygwin
Don’t take the Default.
See next page.
Dr. Philip Cannata
25
Installing Cygwin
Click here until you
have All Install
Dr. Philip Cannata
26
Installing Cygwin
Dr. Philip Cannata
27
Installing Cygwin
Many hours later
Dr. Philip Cannata
28
Installing Cygwin
See next page
Dr. Philip Cannata
29
*** Important Cygwin Setup ***
Change .bash_profile to have
something similar to these 2 lines
depending on where your javac
and javacc are located. I’m using
vi here to change the file.
Dr. Philip Cannata
30
*** Important Cygwin Setup ***
Dr. Philip Cannata
31
Download jython source
1. Download SVN Client (tortoisesv): http://tortoisesvn.net/downloads.html
2.
3.
4.
URL of repository:
https://jython.svn.sourceforge.net/svnroot/jython/trunk/jython
Create some
folder to hold the
jython code.
5.
Dr. Philip Cannata
32
Build jython
1. Download ant: http://ant.apache.org/bindownload.cgi
2.
$ cd C:
$ cd Myjython/jython/
$ vi setEnv.sh
You need to create this
file using something like
wordpad.
$ cat setEnv.sh
export PATH="/cygdrive/c/ant-1.8.2/bin:$PATH"
export JAVA_HOME="/cygdrive/c/java/jdk1.6.0_23"
These need to be the
correct paths for your
system.
$ . ./setEnv.sh
$ ant
Buildfile: C:\Myjython\jython\build.xml
init:
needed-check:
clean-if-antlr-needed:
init:
clean-checkout-dir:
clean:
prepare-output:
[mkdir] Created dir: C:\Myjython\jython\build\classes
[mkdir] Created dir: C:\Myjython\jython\build\gensrc\org\python\antlr
[mkdir] Created dir: C:\Myjython\jython\build\exposed
antlr_gen:
...
Dr. Philip Cannata
33
Try jython
3.
$ Try it out
$ dist/bin/jython
Jython 2.6a0+ (trunk, Aug 2 2011, 19:41:57)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_23
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+2
3
>>> (lambda x: x)(4)
4
>>> (lambda x: x+10)(4)
14
>>>
Dr. Philip Cannata
34
Descargar

PowerPoint Presentation Materials For Instructor’s Online