ParaSail - A New Programming Language - Parallel Programming Talk #120

 

Welcome to another edition of Parallel Programming Talk. This is show #120. 

Today’s guest is Tucker Taft from the Sofcheck Company – we’ll be talking with him shortly about a new programming language he has created.

 But first, What is Clay Thinking About? An interesting discussion about human memory - based on the question - are search engines making humans less smart?  What do you think? 

 The News

    • The Intel Developer Forum is less than a month away– September 13-15 at the Moscone Center in San Francisco http://www.intel.com/idf/ Clay and I will be there – and will both be interviewing folks at IDF – a few Parallel Programming Talk shows will be done and we will have them available for viewing shortly thereafter.ISN is doing something new at IDF – we are sponsoring a lab, being run by our newest Community Black Belt Developer Noah Clemons. Faces of Parallelism Open Lab: Parallel Models for Multi/Many Core:Join this open lab whenever you want. It will be open from Wed, September 14 - 1:05 – 5:15pm. All levels of experience are welcome. You will experience Intel® Software Programming Tools and the wide variety of programming models supported. This hands-on-lab provides attendees the opportunity to see how the latest Intel® silicon features are unlocked via Intel’s optimized Software Tools product line.  You will have the opportunity to provide feedback on your experience, by blog or video (we will provide everything needed)and those who choose to do so will be entered into a contest. Four prizes will be awarded. You will not want to miss this one.Read more about the lab, contest, etc. Session ID: SFTL004

    • T he Intel Academic Community will soon be hosting new rounds of microgrant funding to create parallel programming training material. The first round will be focused on Data Structures. If you’re in academia and have some ideas about teaching parallelism, go to the IAC microgrant site for more information. I’ll have the URL in the show notes or you can find it from the academic community homepage.



 If you have comments, questions, suggestions for guests or show topics, news to share that you think would be of interest, we’d love to hear from you. Clay, where can they send those ideas? parallelprogrammingtalk@intel.com

Now for the best part of the show - Today’s Guest - Sofchek's Tucker Taft. Welcome to PPT

1. What is ParaSail? - Parallel Specification and Implementation Language -- a new language that marries pervasive parallelism with formal methods. It is in the general bailiwick of languages like Java, C#, Scala, Clojure, F#, etc, though it is designed to be significantly simpler to learn and use, and take more advantage of multicore chips.

 2. How did it come about - were you trying to solve a problem? - I have been doing language design for the past 35 to 40 years.  Much of that has been associated with Ada (particularly Ada 95, where I was the technical lead for 5 years of a full-time design team), but I was also involved a bit with the hardware design language VHDL, with DARPA's Common Prototyping Language, and with lots of personal musings. 

Over the past few years I really felt I wanted to start over, and design a language to address the "multicore" revolution along with creating a language that was inherently safe and secure.

I tried to enlist various friends and colleagues in the venture, but alas they all seemed to have their own fish to fry.  So as an alternative I decided to start a Blog documenting the design process, both as a way to get the language "out there," but perhaps more importantly as a way to force me to put "pen to paper" (or the digital equivalent).

 The blog turned out to be a great mechanism for me, and the language ideas came fast and furious.  About a year ago things felt pretty solid, and I began giving talks and writing papers about ParaSail.  Most recently I gave a talk at OSCON 2011, and the cool thing was that the media picked up on it.  My blog which had been cruising along at about 25 hits per day, suddenly jumped up to 2000 on the day of my OSCON 2011 talk.

Of course it is back down a bit now, but the net effect is that I am even more encouraged that ParaSail is addressing an unmet need in the marketplace.

As far as parallelism, I believe that we programmers are fundamentally a lazy lot, and as long as it easier to write a sequential program than a parallel one, we will continue to write sequential programs.  ParaSail was designed with the goal to make it *harder* to write a sequential program.

The default is parallel, and if you want to force something to be done sequentially, you need to say so explicitly.

As far as safety and security, I have spent the past 10 years working on sophisticated static analysis technology used to find safety and security holes in programs by mathematical analysis rather than run-time testing.

I believe that it is now time to move advanced static analysis technology into the compiler, and use it to detect and eliminate all possible run-time errors (e.g. race conditions, null pointer derefs, array out of bounds, numeric overflow, assertion failures) at compile-time.  If the compiler can't prove your program is safe and secure, then it is illegal.

3. Who would want to use this and for what? Advantages, disadvantages? Easy to use?

This is designed for any programmer who is concerned with safety and security, and taking maximum advantage of parallelism so the programs are "future proofed" against the exponential growth in number of processors on the chip.

The language is specifically designed to be very "familiar" to current Java, C++, C#, Ada, ML, etc. programmers.  You should be able to sit down and read a ParaSail program on day one, and start programming soon thereafter.

ParaSail is very simple and uniform, using a very small number of concepts.

Fundamentally there are only four concepts: modules, types, objects, and operations.

All code is parameterized, in the sense of a generic template (or an ML functor), so there is no distinction between generic and non-generic code.

Parallelism is pervasive, but because the compiler worries about race conditions, it doesn't add to debugging complexity.

The prototype ParaSail compiler is getting pretty complete, and recently I have been writing a number of programs in ParaSail.

I have to say it is really fun to program in, and it gives one a tremendous sense of confidence that it is taking care of all safety and security concerns while creating a highly parallel program.

4. Does it take the place of anything else, does it complement another language?

ParaSail is a strongly typed language.  In that sense it is not expected to be used as a "scripting" language.  But for programs that are intended to be compiled into rock-solid executables that take full advantage of multicore, that's what ParaSail is great for.

5. How do viewers find out more?

I started a blog in September 2009 to document the design process: http://parasail-programming-language.blogspot.com

More info: http://groups.google.com/group/parasail-programming-language

------------------------

Join us next time – speaking of show times – following IDF we will resume the weekly show schedule for taping – but still – a new show every week. Watch the Parallel Programming home page calendar  for upcoming show information. And speaking of the home page – it’s got a new look and feel: /software/en-us/parallel - check it out and tell me what you think.

And please keep your cards and letters coming to parallelprogrammingtalk@intel.com.

One more thing before we go, – before you start threading, make sure your shoes are tied. (Don’t want any loose ends hanging around.)

More about Today's Guest:

S. Tucker Taft is Chairman and Founder of SofCheck, Inc., a company devoted to providing tools and technologies for helping to improve software quality and increase programmer productivity.  From 1990 to 1995, Mr. Taft served as the lead designer of the Ada 95 programming language.  In 2001, he led the architecture and development effort of the J2EE/XML-based Mass.gov portal for the Commonwealth of Massachusetts.

 In 2002, Mr. Taft founded SofCheck.  From 2001 to thepresent, Mr. Taft has been a member of the ISO Rapporteur Group that developed Ada 2005, and more recently is finalizing Ada 2012. In September 2009 Mr. Taft embarked on the design of ParaSail, Parallel Specification and Implementation Language, a new language that marries pervasive parallelism with formal methods.

Mr. Taft has published a number of papers and given numerous presentations on programming language design, software development environments, and advanced static analysis technology. His publications include "Ada 9X, A Technical Summary," Communications of the ACM, Nov. 1992, Vol 35, Issue 11. "High Quality Programming Languages," 12th Annual Software Technology Conference, Salt Lake City, Utah, April/May 2000, and "Making Static Analysis a Part of Code Review," embedded-computing.com, June 2009.

Mr. Taft received an A.B. Summa Cum Laude degree from Harvard University, where he has since taught compiler construction and programming language design.

S. Tucker Taft is Chairman and Founder of SofCheck, Inc., a company devoted to providing tools and technologies for helping to improve software quality and increase programmer productivity.  From 1990 to 1995, Mr. Taft served as the lead designer of the Ada 95 programming language.  In 2001, he led the architecture and development effort of the J2EE/XML-based Mass.gov portal for the Commonwealth of Massachusetts.

 

 In 2002, Mr. Taft founded SofCheck.  From 2001 to thepresent, Mr. Taft has been a member of the ISO Rapporteur Group that developed Ada 2005, and more recently is finalizing Ada 2012. In September 2009 Mr. Taft embarked on the design of ParaSail, Parallel Specification and Implementation Language, a new language that marries pervasive parallelism with formal methods.

 

Mr. Taft has published a number of papers and given numerous presentations on programming language design, software development environments, and advanced static analysis technology. His publications include "Ada 9X, A Technical Summary," Communications of the ACM, Nov. 1992, Vol 35, Issue 11. "High Quality Programming Languages," 12th Annual Software Technology Conference, Salt Lake City, Utah, April/May 2000, and "Making Static Analysis a Part of Code Review," embedded-computing.com, June 2009.

Mr. Taft received an A.B. Summa Cum Laude degree from Harvard University, where he has since taught compiler construction and programming language design.

Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.