Person:
Martín Martín, Enrique

Loading...
Profile Picture
First Name
Enrique
Last Name
Martín Martín
Affiliation
Universidad Complutense de Madrid
Faculty / Institute
Informática
Department
Sistemas Informáticos y Computación
Area
Lenguajes y Sistemas Informáticos
Identifiers
UCM identifierORCIDScopus Author IDDialnet IDGoogle Scholar ID

Search Results

Now showing 1 - 10 of 14
  • Item
    Project number: 97
    Estudio de viabilidad de un entorno de aprendizaje colaborativo de lenguajes de programación
    (2015) Martín Martín, Enrique; Montenegro Montes, Manuel; Riesco Rodríguez, Adrián; Rosa Velardo, Fernando; Tamarit Muñoz, Salvador
    En este trabajo proponemos un sistema colaborativo para aprendizaje de lenguajes de programación
  • Item
    Project number: 32
    Implementación de un entorno de aprendizaje colaborativo de lenguajes de programación mediante traducción
    (2016) Caballero Roldán, Rafael; Martín Martín, Enrique; Montenegro Montes, Manuel; Riesco Rodríguez, Adrián; Tamarit Muñoz, Salvador
    Memoria del PIMCD 32/2015, donde presentamos una herramienta colaborativa para aprender lenguajes de traducción mediante traducción llamada DuoCode.
  • Item
    Project number: 61
    Herramienta interactiva de manipulación y corrección de entregas de ejercicios en asignaturas con evaluación continua
    (2019) Montenegro Montes, Manuel; Martín Martín, Enrique; Riesco Rodríguez, Adrián; Saavedra López, Santiago; Suárez García, Gorka
    En este proyecto se extiende el conjunto de herramientas del proyecto Innova-Docencia nº 49 (2016/2017) introduciendo un asistente que permite, de modo interactivo, navegar y realizar operaciones por lotes en todas las entregas de un mismo ejercicio.
  • Item
    Sistemas de tipos en lenguajes lógico-funcionales
    (2013) Martín Martín, Enrique; López Fraguas, Francisco Javier; Rodríguez Hortalá, Juan
    La programación lógico-funcional es un paradigma de programación declarativa muy expresivo, fruto de la combinación de la programación funcional y la programación lógica. Entre sus principales características destacan la posibilidad de de1nir funciones indeterministas, los patrones de orden superior y el uso de variables libres que se ligan a valores adecuados durante el cómputo. Desde el punto de vista de tipos, los sistemas lógico-funcionales han adoptado demaneradirectaelsistemadetiposdeDamas-Milner,provenientedelámbito funcional, debido a su sencillez y a la existencia de tipos principales y métodos efectivos para la inferencia de tipos. Sin embargo, esta adaptación directa no maneja adecuadamente algunas de las principales características de los lenguajes lógico-funcionales como los patrones de orden superior o las variables libres, dando lugar errores de tipos durante la evaluación. En esta tesis proponemos tres sistemas de tipos adecuados para la programación lógico-funcional cuyo objetivo es manejar correctamente estas características problemáticas desde el punto de vista de los tipos. Los sistemas de tipos propuestos, que tratan diferentes mecanismos de cómputos lógicofuncionales (reescritura y estrechamiento), dan solución a los mencionados problemas, proporcionando resultados técnicos de corrección. Además, suponen un mejora sobre propuestas previas de sistemas de tipos para programación lógico-funcional, ya que salvan algunas de sus limitaciones. Aparte de los resultados teóricos, en esta tesis también se han desarrollado implementaciones de los sistemas de tipos, integrándolos como fase de comprobación de tipos en ramas del sistema lógico-funcional Toy.
  • Item
    Project number: 35
    Implementación de un sistema para el aprendizaje de lenguajes de programación mediante tutoriales interactivos
    (2017) Martín Martín, Enrique; Riesco Rodríguez, Adrián; Sánchez Hernández, Jaime; Gregorio Rodríguez, Carlos; López Fraguas, Francisco Javier; Tamarit, Salvador; Congosto Sandoval, Carlos; Cartula Torrecilla, Rafael
  • Item
    Project number: 26
    Tutoriales interactivos para el estudio de la programación: impacto en el aprendizaje
    (2018) Martín Martín, Enrique; Montenegro Montes, Manuel; Riesco Rodríguez, Adrián; Sánchez, Jaime; Carmona Ruber, Jorge; Tamarit, Salvador; López Fraguas, Francisco Javier; Torre Romero, Raúl; Alcobendas Pastor, José Antonio
  • Item
    Project number: 109
    Aprendizaje de lenguajes de programación mediante tutoriales interactivos: diseño y aplicabilidad
    (2016) Martín Martín, Enrique; Riesco Rodríguez, Adrián; Montenegro Montes, Manuel; Tamarit Muñoz, Salvador; Sánchez Hernández, Jaime; Gregorio Rodríguez, Carlos
    Proponemos estudiar la aplicabilidad y posibles medios de implementación de un sistema de tutoriales interactivos para el aprendizaje de la programación, donde el alumno aprende nuevos conceptos a la vez que los practica.
  • Item
    Safe typing of functional logic programs with opaque patterns and local bindings
    (Information and Computation, 2014) López Fraguas, Francisco Javier; Martín Martín, Enrique; Rodríguez Hortalá, Juan
    Type systems are widely used in programming languages as a powerful tool providing safety to programs. Functional logic languages have inherited Damas-Milner type system from their functional part due to its simplicity and popularity. In this paper we address a couple of aspects that can be subject of improvement. One is related to a problematic feature of functional logic languages not taken under consideration by standard systems: it is known that the use of opaque HO patterns in left-hand sides of program rules may produce undesirable effects from the point of view of types. We re-examine the problem, and propose two variants of a Damas-Milner-like type system where certain uses of HO patterns (even opaque) are permitted while preserving type safety. The considered formal framework is that of programs without extra variables and using let-rewriting as reduction mechanism. The other aspect addressed is the different ways in which polymorphism of local definitions can be handled. At the same time that we formalize the type system, we have made the effort of technically clarifying the overall process of type inference in a whole program.
  • Item
    Liberal Typing for Functional Logic Programs
    (Lecture Notes in Computer Science, Programming Languages and Systems, 2010) López Fraguas, Francisco Javier; Martín Martín, Enrique; Rodríguez Hortalá, Juan; Ueda, K.
    We propose a new type system for functional logic programming which is more liberal than the classical Damas-Milner usually adopted, but it is also restrictive enough to ensure type soundness. Starting from Damas-Milner typing of expressions we propose a new notion of well-typed program that adds support for type-indexed functions, existential types, opaque higher-order patterns and generic functions-as shown by an extensive collection of examples that illustrate the possibilities of our proposal. In the negative side, the types of functions must be declared, and therefore types are checked but not inferred. Another consequence is that parametricity is lost, although the impact of this flaw is limited as "free theorems" were already compromised in functional logic programming because of non-determinism.
  • Item
    Rewriting and narrowing for constructor systems with call-time choice semantics
    (Theory and Practice of Logic Programming, 2014) López Fraguas, Francisco Javier; Martín Martín, Enrique; Rodríguez Hortalá, Juan; Sánchez Hernández, Jaime
    Non-confluent and non-terminating constructor-based term rewrite systems are useful for the purpose of specification and programming. In particular, existing functional logic languages use such kind of rewrite systems to define possibly non-strict non-deterministic functions. The semantics adopted for non-determinism is call-time choice, whose combination with non-strictness is a non trivial issue, addressed years ago from a semantic point of view with the Constructor-based Rewriting Logic (CRWL), a well-known semantic framework commonly accepted as suitable semantic basis of modern functional logic languages. A drawback of CRWL is that it does not come with a proper notion of one-step reduction, which would be very useful to understand and reason about how computations proceed. In this paper we develop thoroughly the theory for the first order version of letrewriting, a simple reduction notion close to that of classical term rewriting, but extended with a let-binding construction to adequately express the combination of call-time choice with non-strict semantics. Let-rewriting can be seen as a particular textual presentation of term graph rewriting. We investigate the properties of let-rewriting, most remarkably their equivalence with respect to a conservative extension of the CRWL-semantics coping with let-bindings, and we show by some case studies that having two interchangeable formal views (reduction/semantics) of the same language is a powerful reasoning tool. After that, we provide a notion of let-narrowing which is adequate for call-time choice as proved by soundness and completeness results of let-narrowing with respect to letre writing. Moreover, we relate those let-rewriting and let-narrowing relations (and hence CRWL) with ordinary term rewriting and narrowing, providing in particular soundness and completeness of let-rewriting with respect to term rewriting for a class of programs which are deterministic in a semantic sense.