Robby Findler seminar and guest lecture

 

Macros matter: effectively building lots of programming languages
Robby Findler
Northwestern University & PLT
Monday, November 14, 2016

Building new programming languages from whole cloth is a difficult proposition at best. Macro system provide an alternative; they support the construction of new programming languages from existing pieces, while still providing the flexibility to radically change the syntax and semantics of the programming language.

In this talk, I will give a high-level overview of the myriad of programming languages that Racket supports, as well as an overview of the research area of macros, showing what can be accomplished with them and introducing some of the associated technical challenges (and their solutions).

Robby Findler is currently an Associate Professor at Northwestern University, and received his PhD from Rice University in 2002. His research area is programming languages and he focuses on programming environments, software contracts, and tools for modeling operational semantics. He maintains DrRacket, the program development environment for the programming language Racket and he co-authored the book _How to Design Programs_, a textbook for teaching introductory programming.

(URCS seminar announcement)

Slides

(CSC 253/453 Guest Lecture)  Redex: A Language for Lightweight Semantics Engineering

Professor Robby Findler, Northwestern University

Redex is a programming language designed to support semantics engineers as they experiment with programming language models.  To explore a model, an engineer writes down grammars, type systems, and operational semantics in a notation inspired by the programming languages literature. Redex breathes life into the model, building typing derivations, running example expressions, and using random generation to falsify claims about the model.

This talk gives an overview of Redex, motivating its design choices and giving a sense of how it feels to program in Redex. Then the talk dives into some of the techniques that Redex uses to generate random expressions.

A video by Prof. Findler on Redex

https://docs.racket-lang.org/redex/

Yun Liang Seminar


Yun (Eric) Liang
Peking University
Enabling Effective Optimization Techniques for Heterogeneous System
Abstract: Heterogeneous systems couple CPUs with Programmable Gate Array.   In this talk, I will first present the on-chip storage and multitasking optimization techniques for GPUs. The proposed techniques leverage on compile-time and run-time techniques to improve the cache performance, register utilization, pipeline utilization and overall performance. For the second half of the talk, I will present performance modeling and optimization techniques for FPGAs based on OpenCL programming model.

Bio: Yun (Eric) Liang is currently an assistant professor in School of EECS at Peking University, China. Before joining Peking University, he was a Research Scientist in University of Illinois at Champaign Urbana. He received the B.S degree from Tongji University, Shanghai, and the Ph.D degree in computer science from National University Singapore. He has published more than 40 research papers in the top conferences and journals on compilation, computer architecture, and embedded system including MICRO, HPCA, ISCA, DAC, CGO, ICCAD, FPGA, FCCM, etc. His work has received the Best Paper Award of FCCM 2011 and Best Paper Award nominations from ASPDAC 2016, DAC 2012, FPT 2011, and CODES+ISSS 2008.

Michael Bond Seminar

 

Dr. Michael Bond
Ohio State University
Rethinking System Support for Memory Consistency and Coherence

Abstract:

With the end of Dennard scaling, software must become more parallel to exploit microprocessors that offer more, instead of faster, execution contexts. General-purpose languages and systems provide the shared-memory abstraction, which is powerful and easy to understand — but achieving both correctness and scalability is notoriously hard. A fundamental problem is that shared-memory languages and systems provide weak or undefined behavior for all parallel programs that are not perfectly synchronized.

This talk motivates the necessity of putting languages and systems on a solid foundation by providing strong end-to-end memory consistency models. I’ll describe our ongoing software- and architecture-based approaches for providing strong memory consistency. An important element of our solutions is that providing strong consistency enables us to rethink the design of other system features such as cache coherence. Overall, our work suggests that practical strong consistency is achievable and that it offers benefits that have not previously been realized.

Bio:

Michael Bond is an associate professor at Ohio State University. He did his Ph.D. and a postdoc at UT Austin, advised by Kathryn McKinley. In collaboration with his Ph.D. students and others, Mike’s research addresses the challenges of achieving reliable and scalable parallel systems. His work has received an OOPSLA Distinguished Paper Award, OOPSLA Distinguished Artifact Award, and ACM SIGPLAN Outstanding Dissertation Award.

 

https://www.cs.rochester.edu/dept/seminar/view/dept/2010/03/01/483/Michael_Bond_/Achieving_Reliability_in_Deployed_Software_Systems.html

A Paper Formatting Trick

In an anonymous submission using

\documentclass[10pt]{sig-alternate}

The style file will insist on a large empty space around the paper title.  To use the space for paper text, instead of

\begin{document}

\title{ A great paper from Rochester }
\author{double-blind}
\maketitle

Use the following

\twocolumn[{\begin{figure}[H]
\setlength{\linewidth}{\textwidth}
\setlength{\hsize}{\textwidth}
\centering
{\LARGE \bf A great paper from Rochester }
\bigskip
\bigskip
\end{figure}}]

Then start the paper text as usual.

Guang Gao Keynote

Parallel Computation Models and Systems: Dataflow, Coelets, and Beyond

Guang Gao

ACM Fellow and IEEE Fellow
Endowed Distinguished Professor
University of Delaware, and
Founder of ETI

Friday 9/30, 8:30am to 9:30am
LCPC/CnC Workshops @ Hilton Garden Inn Rochester/University

Prof. Gao was the first student since 1970s to leave China to study in MIT computer science 麻省理工计算机专业首位中国大陆留学生.  He was a member of the entering class of 1963 at Tsinghua University, and the first from that university to become both ACM and IEEE Fellows.

Leslie Valiant Keynote

The Multi-core Problem as an Algorithmic Problem
Leslie Valiant
Harvard University

Wednesday 9/28, 1pm to 2pm
LCPC/CnC Workshops @ Hilton Garden Inn Rochester/University

This keynote is free and open to the public but requires registration

Abstract

The writing of efficient parallel programs has always been difficult, and is currently compounded by the increasing complexity of architectures. We suggest that these difficulties need to be addressed already at the algorithm design level. Resources such as books for relevant efficient algorithms are currently lacking.

In sequential computing programmers have enjoyed efficiently universal algorithms, which have permitted them to write programs independent of machines. We suggest that for parallel or multi-core computers this will no longer be generally possible. Algorithms that run efficiently will need to be aware of the resource parameters of the machines on which they run. The main promise is that of portable algorithms, those that contain efficient designs for all reasonable ranges of the basic resource parameters and input sizes.

Such portable algorithms need to be designed just once, but, once designed, they can be compiled to run efficiently on any machine. In this way the intellectual effort that goes into parallel algorithms design becomes reusable. To permit such portable algorithms some standard bridging model is needed – a common understanding between hardware and algorithm designers of what the costs of a computation are. We shall describe the Multi-BSP model as a candidate for this role. We show that for several basic problems, namely matrix multiplication, fast Fourier transform, and sorting, portable algorithms do exist that are optimal in a defined sense, for all combinations of input size and parameter values.

Biography

Leslie Valiant was educated at King’s College, Cambridge; Imperial College, London; and at Warwick University where he received his Ph.D. in computer science in 1974. He is currently T. Jefferson Coolidge Professor of Computer Science and Applied Mathematics in the School of Engineering and Applied Sciences at Harvard University, where he has taught since 1982. Before coming to Harvard he had taught at Carnegie Mellon University, Leeds University, and the University of Edinburgh.

His work has ranged over several areas of theoretical computer science, particularly complexity theory, computational learning, and parallel computation. He also has interests in computational neuroscience, evolution and artificial intelligence.

He received the Nevanlinna Prize at the International Congress of Mathematicians in 1986, the Knuth Award in 1997, the European Association for Theoretical Computer Science EATCS Award in 2008, and the 2010 A. M. Turing Award. He is a Fellow of the Royal Society (London) and a member of the National Academy of Sciences (USA).

CSC 253 Fall 2016

CSC 253/453 Dynamic Language & Software Development

Prerequisites: CSC 252 and CSC 254 are required for CSC 453 and recommended for others. Familiarity with a dynamic programming language such as Python.
Crosslisted: TCS 453

This course studies dynamically-typed programming languages and modular software development. Topics include principles and practice of modular design, functional and object-oriented programming techniques, software engineering concepts, software correctness and reliability, programming tools, and design examples. Ruby is used as the main instruction language. The lessons complement those in traditional compilers and programming languages courses, which focus mainly on statically-typed languages and individual algorithms rather than system design. A significant portion of the assignment is a group project.

Teaching Staff and office hours:  Prof. Chen Ding, Fridays 11am to 12pm in CSB 720; John Jacobs, Thursdays 3:30-4:30pm in CSB 720.

Preparation (before first class):

“No Silver Bullet — Essence and Accidents of Software Engineering” is a classic paper on software engineering written by Turing Award winner Fred Brooks in 1986.  Read the paper (available here if accessed inside the UR network) especially pages 3 to 5 on the “essential difficulties” of software development.

“A former member of the SD10 Panel on Computing in Support of Battle Management explains why he believes the ‘star wars’ effort will not achieve its stated goals.”  Read the paper (available here if accessed inside the UR network) pages 2 to 4 the section titled “Why software is unreliable.”  Which of the “essential difficulties” was Parnas discussing?

More background of this debate, detailed rationales and an illuminating discussion of the ethical issues can be found in another article of Parnas: “SDI: A Violation of Professional Responsibility”.  The article does not seem to have a free version online, but you can read it by borrowing the book “Software Fundamentals” (included as Chapter 27) from the textbook reserve for CSC 253/453 at the Carlson Library.  The lease is two hours.

Further material will be distributed through the Blackboard web site  for students who have registered.  Contact the instructor if you have problem accessing the site.

Textbooks:
Design patterns in Ruby
Author: Olsen, Russ.
Imprint: Upper Saddle River, NJ : Addison-Wesley, c2008.
On Reserve at: Internet

Fundamentals of software engineering
Author: Ghezzi, Carlo.
Imprint: Upper Saddle River, N.J. : Prentice Hall, c2003.
On Reserve at: Carlson Library Reserve Desk 2nd Floor
Call Number: QA76.758 .G47 2003

Object-oriented and classical software engineering
Author: Schach, Stephen R.
Imprint: New York : McGraw-Hill, c2011.
On Reserve at: Carlson Library Reserve Desk 2nd Floor
Call Number: QA76.758 .S318 2011

PROGRAMMING LANGUAGE PRAGMATICS, 3rd ed
Author: Scott, Michael L.
On Reserve at: Carlson Library Reserve Desk 2nd Floor
Call Number: CRL PersCpy

Software fundamentals : collected papers by David L. Parnas
Author: Parnas, David Lorge.
Imprint: Boston : Addison-Wesley, 2001.
On Reserve at: Carlson Library Reserve Desk 2nd Floor
Call Number: QA76.754 .P365 2001

Programming Languages: Application and Interpretation (http://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/)
Copyright © 2003-07, Shriram Krishnamurthi
(Also see Prof. Findler’s course EECS 321 at https://www.eecs.northwestern.edu/~robby/courses/)

Topics:

schedule

schedule.numbers-2016 topics