TMI: ParaSail
Feb. 8th, 2013 10:01 pmToday, I overslept and missed a research talk by Tucker Taft, who was visiting today, on his language ParaSail. Oops!
...But fortunately, Tucker stayed around long enough to chat with the Rust team, and then was kind enough to give me a rehash of part of the talk one-on-one. ParaSail sounds like a pretty interesting language, with some things in common with Rust but more of a slant towards implicit parallelism rather than explicit. The compiler infers opportunities for parallelism in most cases, but the language also includes annotations that a particular loop in the code must be executable in parallel (meaning that if there are any ordering dependencies, it's a compile-time error). That's a nice idea, and reminds me a little of work I wanted to do in grad school (but didn't get to) on performance annotations.
ParaSail also has an ambitious precondition/postcondition language that's as powerful as the programming language itself (because it's the same language), which backs off to dynamic checks in cases where it's not possible to check a particular precondition within a reasonable amount of time statically. It'll be interesting to see if this eventually turns into a compiler that drops you into a theorem prover in cases where it can't prove your assertions automatically.
And as a result, didn't get much of anything done on Rust today, but I guess that's what the weekend is for!
...But fortunately, Tucker stayed around long enough to chat with the Rust team, and then was kind enough to give me a rehash of part of the talk one-on-one. ParaSail sounds like a pretty interesting language, with some things in common with Rust but more of a slant towards implicit parallelism rather than explicit. The compiler infers opportunities for parallelism in most cases, but the language also includes annotations that a particular loop in the code must be executable in parallel (meaning that if there are any ordering dependencies, it's a compile-time error). That's a nice idea, and reminds me a little of work I wanted to do in grad school (but didn't get to) on performance annotations.
ParaSail also has an ambitious precondition/postcondition language that's as powerful as the programming language itself (because it's the same language), which backs off to dynamic checks in cases where it's not possible to check a particular precondition within a reasonable amount of time statically. It'll be interesting to see if this eventually turns into a compiler that drops you into a theorem prover in cases where it can't prove your assertions automatically.
And as a result, didn't get much of anything done on Rust today, but I guess that's what the weekend is for!