• Email
  • Like
  • Save
  • Private Content
  • Embed
 

Procedure Typing for Scala

by

  • 9,508 views

The great attractiveness of purely functional languages is their ability to depart from sequential order of computation. Theoretically, it enables two important features of the compiler: ...

The great attractiveness of purely functional languages is their ability to depart from sequential order of computation. Theoretically, it enables two important features of the compiler:

1) The ability to reorder computation flow, making the program implicitly parallelisable. Modern imperative language compilers, even using careful synchronization of concurrent code, still generate huge chunks of sequential instructions that need to be executed on a single processor core; a purely functional language compilers can dispatch very small chunks to many (hundreds and thousands) of cores, carefully eliminating as many execution path dependencies as possible.

2) As the compiler formalizes different types of side effects, it can detect a whole new class of program errors at compile time, including resource acquisition and releasing problems, concurrent access to shared resources, many types of deadlocks etc. It is not yet a full-fledged program verification, but it is a big step in that direction.

Scala is a semi-imperative language with strong support for functional programming and rich type system. One can isolate the purely functional core of the language which can be put on the firm mathematical foundation of dependent type theories. We argue that it is possible to treat Scala code as it's written by now as an implicit do-notation which can be then reduced to a purely functional core by means of recently introduced Scala macros. The formalism of arrows and applicative contexts can bring Scala to a full glory of an implicitly parallelisable programming language, while still keeping its syntax mostly unchanged.

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Adobe PDF

Usage Rights

© All Rights Reserved

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel

10 Embeds 4,087

http://lj-toys.com 2925
http://www.scoop.it 784
http://l.lj-toys.com 318
http://www.redditmedia.com 44
http://us-w1.rockmelt.com 6
https://si0.twimg.com 4
https://twitter.com 2
http://paper.li 2
http://xss.yandex.net 1
http://webcache.googleusercontent.com 1

More...

Statistics

Likes
12
Downloads
91
Comments
0
Embed Views
4,087
Views on SlideShare
5,421
Total Views
9,508
Post Comment
Edit your comment

Procedure Typing for Scala Procedure Typing for Scala Presentation Transcript