SlideShare a Scribd company logo
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 results:
–

VoDKA: Video on Demand system

–

ARMISTICE: Advanced Risk Management
Information System

–

Syntheractive

–

ADVERTISE
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
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
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
VoDKA
VoDKATV
ARMISTICE
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
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
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
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
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
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
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa
Experiencias Industriales con Programación Declarativa

More Related Content

Similar to Experiencias Industriales con Programación Declarativa

Lieven Vermaele - SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
Lieven Vermaele -  SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...Lieven Vermaele -  SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
Lieven Vermaele - SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
Burton Lee
 
NUB3D - Company Presentation
NUB3D - Company PresentationNUB3D - Company Presentation
NUB3D - Company Presentation
NUB3D
 
Daniela brauner
Daniela braunerDaniela brauner
Daniela brauner
Lucas Giraldo
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
kahunasystems
 
DinakaraPandian_9+
DinakaraPandian_9+DinakaraPandian_9+
DinakaraPandian_9+
Dinakara Pandian
 
Product Lines Can Jeopardize Their Trade Secrets
Product Lines Can Jeopardize Their Trade SecretsProduct Lines Can Jeopardize Their Trade Secrets
Product Lines Can Jeopardize Their Trade Secrets
Guillaume Bécan
 
Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016
Arkuda Digital
 
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
South Tyrol Free Software Conference
 
nathan
nathannathan
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
Aruba, a Hewlett Packard Enterprise company
 
HARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SWHARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SW
Harish Kumar S
 
Elevaor pitch o_xi_gen
Elevaor pitch o_xi_genElevaor pitch o_xi_gen
Elevaor pitch o_xi_gen
OXiGen
 
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
Lisa Laxton
 
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
Microsoft Mobile Developer
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
TAMILMARAN C
 
Achieving Software Assurance with Hybrid Analysis Mapping
Achieving Software Assurance with Hybrid Analysis Mapping  Achieving Software Assurance with Hybrid Analysis Mapping
Achieving Software Assurance with Hybrid Analysis Mapping
Denim Group
 
CURRICULUM VITAE
CURRICULUM VITAE CURRICULUM VITAE
CURRICULUM VITAE
MohamedKaroui3
 
Create a Unified View of Your Application Security Program – Black Duck Hub a...
Create a Unified View of Your Application Security Program – Black Duck Hub a...Create a Unified View of Your Application Security Program – Black Duck Hub a...
Create a Unified View of Your Application Security Program – Black Duck Hub a...
Denim Group
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
sarinsahab
 
SivaBorra
SivaBorraSivaBorra
SivaBorra
Siva Borra
 

Similar to Experiencias Industriales con Programación Declarativa (20)

Lieven Vermaele - SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
Lieven Vermaele -  SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...Lieven Vermaele -  SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
Lieven Vermaele - SDNsquare - Flanders Belgium - Stanford Engineering - Mar ...
 
NUB3D - Company Presentation
NUB3D - Company PresentationNUB3D - Company Presentation
NUB3D - Company Presentation
 
Daniela brauner
Daniela braunerDaniela brauner
Daniela brauner
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
 
DinakaraPandian_9+
DinakaraPandian_9+DinakaraPandian_9+
DinakaraPandian_9+
 
Product Lines Can Jeopardize Their Trade Secrets
Product Lines Can Jeopardize Their Trade SecretsProduct Lines Can Jeopardize Their Trade Secrets
Product Lines Can Jeopardize Their Trade Secrets
 
Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016
 
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
SFScon 2020 - Alexander Sander - Public Money Public Code Global problems nee...
 
nathan
nathannathan
nathan
 
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
Software defined networking (sdn) deep dive 3rd-party ecosystem apps and the ...
 
HARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SWHARISH_Resume_Embedded_SW
HARISH_Resume_Embedded_SW
 
Elevaor pitch o_xi_gen
Elevaor pitch o_xi_genElevaor pitch o_xi_gen
Elevaor pitch o_xi_gen
 
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
IMA/Thales SceneGate Viewer for OpenSimulator Presentation at OSCC19
 
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
LUMIA APP LABS: GAMES DEVELOPMENT USING WINDOWS PHONE 8
 
Jfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copyJfrog artifactory artifact management c tamilmaran presentation - copy
Jfrog artifactory artifact management c tamilmaran presentation - copy
 
Achieving Software Assurance with Hybrid Analysis Mapping
Achieving Software Assurance with Hybrid Analysis Mapping  Achieving Software Assurance with Hybrid Analysis Mapping
Achieving Software Assurance with Hybrid Analysis Mapping
 
CURRICULUM VITAE
CURRICULUM VITAE CURRICULUM VITAE
CURRICULUM VITAE
 
Create a Unified View of Your Application Security Program – Black Duck Hub a...
Create a Unified View of Your Application Security Program – Black Duck Hub a...Create a Unified View of Your Application Security Program – Black Duck Hub a...
Create a Unified View of Your Application Security Program – Black Duck Hub a...
 
Ankit sarin
Ankit sarinAnkit sarin
Ankit sarin
 
SivaBorra
SivaBorraSivaBorra
SivaBorra
 

More from Laura M. Castro

Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?
Laura M. Castro
 
IAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xéneroIAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xénero
Laura M. Castro
 
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
Laura M. Castro
 
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
Laura M. Castro
 
Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?
Laura M. Castro
 
How the BEAM will change your mind
How the BEAM will change your mindHow the BEAM will change your mind
How the BEAM will change your mind
Laura M. Castro
 
Elixir vs Java
Elixir vs JavaElixir vs Java
Elixir vs Java
Laura M. Castro
 
So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?
Laura M. Castro
 
Elixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to ErlangElixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to Erlang
Laura M. Castro
 
Introdución á edición de textos con LaTeX
Introdución á edición de textos con LaTeXIntrodución á edición de textos con LaTeX
Introdución á edición de textos con LaTeX
Laura M. Castro
 
Edición de textos con LaTeX
Edición de textos con LaTeXEdición de textos con LaTeX
Edición de textos con LaTeX
Laura M. Castro
 
Improving software development using Erlang/OTP
Improving software development using Erlang/OTPImproving software development using Erlang/OTP
Improving software development using Erlang/OTP
Laura M. Castro
 
Testing database applications with QuickCheck
Testing database applications with QuickCheckTesting database applications with QuickCheck
Testing database applications with QuickCheck
Laura M. Castro
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo software
Laura M. Castro
 

More from Laura M. Castro (14)

Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?Ola, ChatGPT... que carreira sería boa para min?
Ola, ChatGPT... que carreira sería boa para min?
 
IAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xéneroIAs xerativas e nesgos de xénero
IAs xerativas e nesgos de xénero
 
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
As intelixencias artificiais como xeradoras de cultura: exploración dos nesgo...
 
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
David vs. Goliat: lecciones aprendidas de una experiencia fallida de adopción...
 
Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?Why on Earth would I test if I have to just "Let it crash"?
Why on Earth would I test if I have to just "Let it crash"?
 
How the BEAM will change your mind
How the BEAM will change your mindHow the BEAM will change your mind
How the BEAM will change your mind
 
Elixir vs Java
Elixir vs JavaElixir vs Java
Elixir vs Java
 
So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?So I used Erlang... is my system as scalable as they say it'd be?
So I used Erlang... is my system as scalable as they say it'd be?
 
Elixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to ErlangElixir: the not-so-hidden path to Erlang
Elixir: the not-so-hidden path to Erlang
 
Introdución á edición de textos con LaTeX
Introdución á edición de textos con LaTeXIntrodución á edición de textos con LaTeX
Introdución á edición de textos con LaTeX
 
Edición de textos con LaTeX
Edición de textos con LaTeXEdición de textos con LaTeX
Edición de textos con LaTeX
 
Improving software development using Erlang/OTP
Improving software development using Erlang/OTPImproving software development using Erlang/OTP
Improving software development using Erlang/OTP
 
Testing database applications with QuickCheck
Testing database applications with QuickCheckTesting database applications with QuickCheck
Testing database applications with QuickCheck
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo software
 

Recently uploaded

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
Fwdays
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 

Recently uploaded (20)

AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk"Frontline Battles with DDoS: Best practices and Lessons Learned",  Igor Ivaniuk
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 

Experiencias Industriales con Programación Declarativa

  • 1. Experiencias Industriales con Programación Declarativa Laura M. Castro lcastro@udc.es www.madsgroup.org/staff/laura
  • 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. 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. 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. 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.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. VoDKA
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38.
  • 39. 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