SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie 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 PresentationNUB3D
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Serviceskahunasystems
 
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 SecretsGuillaume Bécan
 
Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016Arkuda.CarPlay Solutions.presentation.2016
Arkuda.CarPlay Solutions.presentation.2016Arkuda 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
 
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_SWHarish Kumar S
 
Elevaor pitch o_xi_gen
Elevaor pitch o_xi_genElevaor pitch o_xi_gen
Elevaor pitch o_xi_genOXiGen
 
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 OSCC19Lisa 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 8Microsoft 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 - copyTAMILMARAN 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
 
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
 

Ähnlich wie 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
 

Mehr von 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éneroLaura 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 mindLaura 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 ErlangLaura 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 LaTeXLaura M. Castro
 
Edición de textos con LaTeX
Edición de textos con LaTeXEdición de textos con LaTeX
Edición de textos con LaTeXLaura M. Castro
 
Improving software development using Erlang/OTP
Improving software development using Erlang/OTPImproving software development using Erlang/OTP
Improving software development using Erlang/OTPLaura M. Castro
 
Testing database applications with QuickCheck
Testing database applications with QuickCheckTesting database applications with QuickCheck
Testing database applications with QuickCheckLaura 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 softwareLaura M. Castro
 

Mehr von 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
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

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