Experiencias Industriales
con Programación Declarativa

Laura M. Castro
lcastro@udc.es
www.madsgroup.org/staff/laura
MADS
●

Models and Applications of Distributed Systems
http://www.madsgroup.org

●

Core language: Erlang

●

Well-known r...
MADS
●

Models and Applications of Distributed Systems
http://www.madsgroup.org

●

Core language: Erlang

●

Well-known r...
MADS
●

Models and Applications of Distributed Systems
http://www.madsgroup.org

●

Core language: Erlang

●

Well-known r...
Erlang
●
●

Functional programming language
Developed by Ericsson in the mid-eighties, open
source since 1998

●

Dynamica...
VoDKA
VoDKATV
ARMISTICE
The key: Erlang
●

Erlang features common to all these projects
–

Supervision, monitoring
●
●

Lightweight processes
Beha...
The key: Erlang
●

Erlang features common to all these projects
–

Supervision, monitoring
●
●

Lightweight processes
Beha...
The key: Erlang
●

Erlang features common to all these projects
–

Supervision, monitoring
●
●

Lightweight processes
Beha...
MADS (today)
●

Current research: software testing
–

●

Specifically: model-based and property-based
testing

2 European ...
ProTest: Property-based testing
●

●

Uses declarative statements to specify
properties that the software needs to satisfy...
PROWESS: PBT for web services
●

Reduce time spent on testing, whilst
increasing software quality
–

●

In order to quickl...
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Upcoming SlideShare
Loading in …5
×

Experiencias Industriales con Programación Declarativa

334 views

Published on

Building software imposes a set of general challenges, which are complemented by those specific to the business context. The use of declarative programming as key implementation technology provides several advantages in both areas, a fact that has not gone unnoticed by companies of all sizes and domains.

In particular, the functional programming language Erlang is getting big momentum in the last years thanks to its built-in capabilities for high availability, robustness, maintainability.

This presentation shows some practical examples and discusses the role that the implementation technology (Erlang) played in their successful outcome.

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
334
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Experiencias Industriales con Programación Declarativa

  1. 1. Experiencias Industriales con Programación Declarativa Laura M. Castro lcastro@udc.es www.madsgroup.org/staff/laura
  2. 2. MADS ● Models and Applications of Distributed Systems http://www.madsgroup.org ● Core language: Erlang ● Well-known results: – VoDKA: Video on Demand system – ARMISTICE: Advanced Risk Management Information System – Syntheractive – ADVERTISE
  3. 3. MADS ● Models and Applications of Distributed Systems http://www.madsgroup.org ● Core language: Erlang ● Well-known results: – VoDKA: Video on Demand system – ARMISTICE: Advanced Risk Management Information System – Syntheractive – ADVERTISE collaboration 2 spin-offs with industry
  4. 4. MADS ● Models and Applications of Distributed Systems http://www.madsgroup.org ● Core language: Erlang ● Well-known results: – VoDKA: Video on Demand system – ARMISTICE: Advanced Risk Management Information System – Syntheractive – ADVERTISE 2 spin-offs
  5. 5. Erlang ● ● Functional programming language Developed by Ericsson in the mid-eighties, open source since 1998 ● Dynamically typed, eager evaluation ● Key features: – Concurrency: lightweight processes, own memory space, asynchronous message passing – Distribution: several VMs on several nodes – High avalilability: links between processes, built-in fault-tolerance mechanisms
  6. 6. VoDKA
  7. 7. VoDKATV
  8. 8. ARMISTICE
  9. 9. The key: Erlang ● Erlang features common to all these projects – Supervision, monitoring ● ● Lightweight processes Behaviours (lots of boilerplate for free!) – Seamless distribution – Nonstop code upgrade
  10. 10. The key: Erlang ● Erlang features common to all these projects – Supervision, monitoring ● ● Lightweight processes Behaviours (lots of boilerplate for free!) – Seamless distribution – Nonstop code upgrade – Pattern-matching – List comprehensions – Functions as first-class citizens
  11. 11. The key: Erlang ● Erlang features common to all these projects – Supervision, monitoring ● ● Lightweight processes Behaviours (lots of boilerplate for free!) – Seamless distribution – Nonstop code upgrade – Pattern-matching – List comprehensions – Functions as first-class citizens
  12. 12. MADS (today) ● Current research: software testing – ● Specifically: model-based and property-based testing 2 European research projects: – ProTest (http://protest­project.eu): 2007-2011 – PROWESS (http://prowess­project.eu): 2012-2015
  13. 13. ProTest: Property-based testing ● ● Uses declarative statements to specify properties that the software needs to satisfy according to its specification Using this approach: – – ● Test cases can be automatically derived from those properties Test cases can be automatically run and diagnosed PBT in Erlang: – QuickCheck / PropEr
  14. 14. PROWESS: PBT for web services ● Reduce time spent on testing, whilst increasing software quality – ● In order to quickly launch new, or enhancements of existing, web services and internet applications Provide the European software industry with efficient and effective testing tools and techniques for web services – Erlang/QuickCheck as core tools/technologies

×