14
SEM ENROLAÇÃO

TDC2016SP - Trilha Programação Funcional

Embed Size (px)

Citation preview

Page 1: TDC2016SP - Trilha Programação Funcional

SEM ENROLAÇÃO

Page 2: TDC2016SP - Trilha Programação Funcional

/DEV/FELIPEMAMUD

Page 3: TDC2016SP - Trilha Programação Funcional

Erlang and OTP in Action (LOGAN, 2011; MERRIT, 2011; CARLSSON, 2011)

“Functional programming and the mindset that it teaches you are a natural match to the problems

encountered in concurrent and distributed programming [...]”

Page 4: TDC2016SP - Trilha Programação Funcional

Ericsson language

● telephony switches problem

● 1986; 30 years ago

● dynamic; strong typing; funcional; fault-

tolerant;

● lightweight processes

● message passing concurrent paradigm

Agner Krarup Erlang was a Danish mathematician, statistician and

engineer.

Page 5: TDC2016SP - Trilha Programação Funcional

Erlang’s worldset of Erlang libraries and

design principles providing middle-ware to develop

these systems. It includes its own distributed

database, applications to interface towards other

languages, debugging and release handling tools.

OTP

virtual machine where all Erlang code is executed

aka emulator.beam files

BEAM

Erlang Runtime System where the BEAM, kernel and standard libraries amongst others are

included

ERTS

programming language dynamic & strong typingfuncional & fault-tolerant lightweight processes

message passing concurrent paradigm

ERLANG

Page 6: TDC2016SP - Trilha Programação Funcional

Who uses?

Page 7: TDC2016SP - Trilha Programação Funcional

Which projects?

Page 8: TDC2016SP - Trilha Programação Funcional

Polemical stuffs

● The Prolog syntax based dillemma;

● There are not unique statement terminators; instead it there is Period (.), Semicolon (;), colon (,);

● There is no if… then… else… statement;

● String == List of Integers;

● Records are a compile time feature.

Page 9: TDC2016SP - Trilha Programação Funcional

Let's crash code!

Page 10: TDC2016SP - Trilha Programação Funcional

Another flavors

LFE - Lisp Flavored Erlang

● functional, concurrent, general-purpose programming language

● Lisp dialect

http://lfe.io

Page 11: TDC2016SP - Trilha Programação Funcional

Another flavors

● A dynamic programming language that compiles to

bytecode for the Erlang VM;

● syntax improvement (Ruby & Python based);

● improvement on current tools;

● metaprogramming;

● method dispatch;

● protocols;

http://elixir-lang.org

Page 12: TDC2016SP - Trilha Programação Funcional

References

● Erlang Official Website.

http://www.erlang.org/

● Learn You Some Erlang for great good. (Read it online)

http://learnyousomeerlang.com

● Erlang and OTP in Action. (Maning - 2011)

https://www.manning.com/books/erlang-and-otp-in-action

Page 14: TDC2016SP - Trilha Programação Funcional

Felipe Mamud@ftmamud

THANK YOU!