On this page:
1 Introduction
2 Meetings
3 Turn In Policy
4 Paper Review Format
5 Discussion Review Format
6 Exams
7 Grading
8 Your Final Grade

Advanced Programming Languages (Winter 2012)

This class is taught by Jay McCarthy.

We meet in 202 RB at 9:30-10:45a TR.

Jay McCarthy’s office hours are 1pm to 4:00pm M-F in 3328 TMCB.

1 Introduction

This course covers advanced programming language topics.

This year’s theme is low-level programming languages and virtual machines.

This course will be structured as follows: each week we’ll hear presentations on a paper from a student; before the first meeting every student will turn in a review of the paper; after the second meeting every student will turn in a review of presenter. If a paper is particularly confusing, I’ll take the next day to go over some of the necessary theory. The presenter should consult with me to design their presentations.

2 Meetings

 

Date

 

Paper

 

Presenter.

 

1/5

 

The Low Level Langauge

 

Jay

 

1/10

 

C–: a portable assembly language that supports garbage collection

 

Blake

 

1/12

 

cont.

 

 

1/17

 

LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation

 

Nick

 

1/19

 

cont.

 

 

1/24

 

Pre-Scheme: A Scheme Dialect for Systems Programming

 

Scott

 

1/26

 

cont.

 

 

1/31

 

JVM and its Bytecode vs CLR and its Bytecode

 

Song

 

2/2

 

cont.

 

 

2/7

 

Parrot VM

 

Kevin

 

2/9

 

cont.

 

 

2/14

 

Programming with Forth and Forth philosophy

 

Daniel

 

2/16

 

cont.

 

 

2/23

 

2010 LLVM Developers’ Meeting

 

Video

 

2/28

 

KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs

 

Kevin

 

3/1

 

cont.

 

 

3/6

 

Safe Manual Memory Management in Cyclone

 

Blake

 

3/8

 

cont.

 

 

3/13

 

OpenCL C

 

Saint

 

3/15

 

cont.

 

 

3/20

 

The Racket Virtual Machine and Randomized Testing

 

Nick

 

3/22

 

cont.

 

 

3/27

 

JONESFORTH: Implementing Forth

 

Kimball

 

3/29

 

cont.

 

 

4/3

 

VMKit: a Substrate for Managed Runtime Environments

 

Daniel

 

4/5

 

cont.

 

 

4/10

 

EigenCFA: Accelerating Flow Analysis with GPUs

 

Jay

This schedule may change.

3 Turn In Policy

Reviews are to be emailed to byu-cs-630-winter-2012@googlegroups.com. Paper reviews are due by 5pm the day before the first meeting. Discussion reviews are due by 5pm the day after the second meeting.

The subject line must be: "BYU - Winter 2012 - CS 630 - date - kind", where date is the date of the meeting and kind is either Paper or Discussion.

Only one email should be sent. If more than one is sent, I will grade the oldest one.

The only file formats that will be accepted are inline text.

Reviews that do not have the correct format will receive no credit.

4 Paper Review Format

Your review should summarize the paper, identify its primary contributions, describe something you understood well, and describe something you had a hard time understanding. You should plan on writing approximately a page and a half of prose.

5 Discussion Review Format

Your review should summarize the discussion, identify the main things you learned from it and/or thought deeply about, and describe what lingering questions (if any) you still have about the material. You should plan on writing approximately a page and a half of prose.

6 Exams

There are no exams in this course.

7 Grading

Each review is graded with a number between 0 and 1.

8 Your Final Grade

Your final numeric grade is the average of the reviews due.

I will then run the following function to convert it to a letter:

> (define (convert-to-letter ng)
    (cond
      [(> ng 0.93) "A"]
      [(> ng 0.9) "A-"]
      [(> ng 0.86) "B+"]
      [(> ng 0.83) "B"]
      [(> ng 0.8) "B-"]
      [(> ng 0.76) "C+"]
      [(> ng 0.73) "C"]
      [(> ng 0.7) "C-"]
      [(> ng 0.66) "D+"]
      [(> ng 0.63) "D"]
      [(> ng 0.6) "D-"]
      [else "F"]))

Examples:

> (convert-to-letter 1)

"A"

> (convert-to-letter 0.94)

"A"

> (convert-to-letter 0.899999)

"B+"

> (convert-to-letter 0.81)

"B-"

> (convert-to-letter 0.74)

"C"

> (convert-to-letter 0.6999999)

"D+"

> (convert-to-letter 0.62)

"D-"

> (convert-to-letter 0.57)

"F"