Experiencias Industriales con Programación Declarativa
-
Upload
laura-m-castro -
Category
Technology
-
view
169 -
download
3
description
Transcript of Experiencias Industriales con Programación Declarativa
![Page 1: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/1.jpg)
Experiencias Industrialescon Programación Declarativa
Laura M. [email protected]
www.madsgroup.org/staff/laura
![Page 2: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/2.jpg)
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
![Page 3: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/3.jpg)
2 spin-offs
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
– ADVERTISEcollaborationwith industry
![Page 4: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/4.jpg)
2 spin-offs
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
– ADVERTISE2 spin-offs
![Page 5: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/5.jpg)
● 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
Erlang
![Page 6: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/6.jpg)
![Page 7: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/7.jpg)
![Page 8: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/8.jpg)
![Page 9: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/9.jpg)
![Page 10: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/10.jpg)
![Page 11: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/11.jpg)
![Page 12: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/12.jpg)
![Page 13: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/13.jpg)
![Page 14: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/14.jpg)
![Page 15: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/15.jpg)
![Page 16: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/16.jpg)
![Page 17: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/17.jpg)
![Page 18: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/18.jpg)
![Page 19: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/19.jpg)
![Page 20: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/20.jpg)
![Page 21: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/21.jpg)
![Page 22: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/22.jpg)
![Page 23: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/23.jpg)
![Page 24: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/24.jpg)
VoDKA
![Page 25: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/25.jpg)
VoDKATV
![Page 26: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/26.jpg)
ARMISTICE
![Page 27: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/27.jpg)
![Page 28: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/28.jpg)
![Page 29: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/29.jpg)
![Page 30: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/30.jpg)
![Page 31: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/31.jpg)
![Page 32: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/32.jpg)
![Page 33: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/33.jpg)
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
![Page 34: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/34.jpg)
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
![Page 35: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/35.jpg)
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
![Page 36: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/36.jpg)
● Current research: software testing– Specifically: model-based and property-based
testing
● 2 European research projects:– ProTest (http://protestproject.eu): 2007-2011
– PROWESS (http://prowessproject.eu): 2012-2015
MADS (today)
![Page 37: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/37.jpg)
● 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
ProTest: Property-based testing
![Page 38: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/38.jpg)
![Page 39: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/39.jpg)
● 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
PROWESS: PBT for web services
![Page 40: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/40.jpg)
![Page 41: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/41.jpg)
![Page 42: Experiencias Industriales con Programación Declarativa](https://reader036.fdocuments.in/reader036/viewer/2022081400/5550f5a1b4c90572478b45f3/html5/thumbnails/42.jpg)