Presentation is loading. Please wait.

Presentation is loading. Please wait.

Message Passing, Concurrency, And Parallelism with Erlang Presented By: Craig R. Kuehn Department of Computer Science and Software Engineering University.

Similar presentations


Presentation on theme: "Message Passing, Concurrency, And Parallelism with Erlang Presented By: Craig R. Kuehn Department of Computer Science and Software Engineering University."— Presentation transcript:

1 Message Passing, Concurrency, And Parallelism with Erlang Presented By: Craig R. Kuehn Department of Computer Science and Software Engineering University of Wisconsin-Platteville kuehnc@uwplatt.edu

2 History  1985 – Tried 20 Different Languages  1987 – First Experiments with Erlang  1991 – First Project in Erlang  1993 – BOS  1996 – OTP!  1999 – OPEN SOURCE!!!  2003 – Workshop Joins ACM SIGPLAN ICPF  2006 – SMP Capable R&D @ Ellemtel CS Lab

3 Ready!  Most Important Rule: Programming Is Fun!!  AI class?  Functional Programming?  Concurrency-Oriented Programming?

4 GO!!!Set!

5 The Basics… Variables We Have to Start Somewhere  Start With a Capital Letter  Single Assignment – Not Like C++ or Java (I told you to forget about them)  “=“ -> Lhs = Rhs  Bound v.s. Unbound  “_” the anonymous variable  Why Single Assignment?  Scope

6 …The Basics Continued… Data Types  Integers  Floats  Atoms  Tuples  Records  Lists  Strings  Binaries

7 …The Basics Continued Still… Modules  Basic Unit  moduleName.erl  Compiled  moduleName.beam  Module  Import  Export

8 …The Basics Continued Still More… Functions  Clauses  Head -> Body  “Tried” In Order  Arity  fun Anonymous Function  Higher-Order Functions  List Comprehensions  BIFs

9 …The Basics Continued And Still More… Conditions/Controls  Not really needed  Guards (semicolon and comma delimited)  Case  If  Exceptions

10 Intermission From The Heavy Stuff Targets or Goals In Mind During The Design  Fault Tolerant  Continuous  Concurrent  Distributed, Heterogeneous  Highly Reliable, “Soft” Real-time  Scalable  Tail Recursive  Process-Oriented A Tidbit About Erlang A Tidbit About Erlang

11 The Advanced Part… Process Stuff  Process Dictionary  Pure Message Passing Language  Detriment To Your Health  Bad Horror Movies  Relax Marching Onward Marching Onward

12 …The Advanced Part Continued… Message Passing, Concurrency, and Parallelism Tools  Spawn()  “!” The Send Operator  Receive…end (Blocking and Non-Blocking)

13 …The Advanced Part Continued Still… The Intricate Parts of Receive  Timer  First Message  Not A Match  No More Messages  It Is A Match!!!  Timer Elapses

14 …The Advanced Part Continued Still More…  Publishing a Process Identifier  Spawning with MFA  “Hot Swapping” Message Passing, Concurrency, and Parallelism Specs

15 …The Advanced Part Continued And Still More…  Exit Signals  Linking  Monitors Message Passing, Concurrency, and Parallelism Errors

16 Gosh, Finally!  Concurrency-Oriented Programming  Erlang  UW-Platteville CS Department The Future:

17 So You Think You Have A Question, Do You? Well Do You?


Download ppt "Message Passing, Concurrency, And Parallelism with Erlang Presented By: Craig R. Kuehn Department of Computer Science and Software Engineering University."

Similar presentations


Ads by Google