Download presentation
Presentation is loading. Please wait.
Published byJuliet Rich Modified over 8 years ago
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?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.