Práctica 10: Lenguajes de Dominio Específico (DSL - Domain Specific Languages)

En esta práctica vamos a diseñar e implementar una DSL que nos permita una mejor definición de menús dietéticos diarios y semanales.

Coverage Status

Instalación

En la carpeta del proyecto, ejecutar:

bundle install

Metodología

Para el desarrollo de esta práctica, crearemos una clase Menú y modificaremos las clases Alimento y Plato para que permitan el uso de una DSL. De esta manera, crear un menú será tan sencillo como hacer lo siguiente:

plato = Plato.new ("Hamburguesa") do
    nombre      "Hamburguesa especial de la casa"
    alimento    :descripcion => "carne de vaca",
            :gramos => 100
    alimento    :descripcion => "huevo",
            :gramos => 20
end

menu = Menu.new ("Combinado nº. 1") do
    descripcion     "hamburguesa, papas, refresco"
    componente  :descripcion => "Hamburguesa especial de la casa",
            :precio => 4.25
    componente  :descripcion => "Papas pequeñas",
            :precio => 1.75
    componente  :descripcion => "Refresco de lata",
            :precio => 1.5
    precio      7.5
end

Datos del creador

  • Autor: Himar Manuel Barquín Carrasco.
  • Fecha de creación: 06/01/2020.
  • Fecha de entrega: 08/01/2020.

Lenguajes y Paradigmas de Programación, Ingeniería Informática.

Escuela Superior de Ingeniería y Tecnología, Universidad de La Laguna.