Understanding LOLITA: Experiences in Teaching Large Scale Functional Programming
نویسندگان
چکیده
LOLITA is a large scale natural processing system written in the functional language Haskell. It consists of over 47,000 lines of code written over 180 dierent modules. There are currently 20 people working on the system, most of whom are Ph.D. students. The majority of research projects involve the development of an application which is written around a semantic network; the knowledge representation structure at the core of the system. Because of the type of various applications, developers often join the team with little or no functional programming experience. For this reason the task of teaching these developers to the level required to implement their respective applications, requires teaching at various levels of abstraction. The strategy chosen means that each researcher only needs to be taught at the particular level of abstraction at which they work. These abstractions give rise to the notion of a domain specic sublanguage; that is a programming style in which a dierent language is created for each desired level of abstraction. In this paper we show how functional languages provide the necessary framework to enable these sublanguages to be created.
منابع مشابه
Parallelising a Large Functional Program or: Keeping LOLITA Busy
A parallel version of the LOLITA natural language engineering system is under construction. We believe that, at 47,000 lines of Haskell, LOLITA is the largest non-strict parallel functional program ever. In this paper we report on the ongoing parallelisation of LOLITA, which has the following interesting features common to real world applications of lazy languages: { the code was not speciicall...
متن کاملProfiling large-scale lazy functional programs
The LOLITA natural language processor is an example of one of the ever-increasing number of large-scale systems written entirely in a functional programming language. The system consists of over 47,000 lines of Haskell code (excluding comments) and is able to perform a wide range of tasks such as semantic and pragmatic analysis of text, information extraction and query analysis. The efficiency ...
متن کاملConnecting the Dots: Computer Systems Education using a Functional Hardware Description Language
A functional hardware description language enables students to gain a working understanding of computer systems, and to see how the levels of abstraction fit together. By simulating circuits, digital design becomes a living topic, like programming, and not just a set of inert facts to memorise. Experiences gained from more than 20 years of teaching computer systems via functional programming ar...
متن کاملA New Compromise Decision-making Model based on TOPSIS and VIKOR for Solving Multi-objective Large-scale Programming Problems with a Block Angular Structure under Uncertainty
This paper proposes a compromise model, based on a new method, to solve the multi-objective large-scale linear programming (MOLSLP) problems with block angular structure involving fuzzy parameters. The problem involves fuzzy parameters in the objective functions and constraints. In this compromise programming method, two concepts are considered simultaneously. First of them is that the optimal ...
متن کاملA Compromise Decision-Making Model Based on TOPSIS and VIKOR for Multi-Objective Large- Scale Nonlinear Programming Problems with A Block Angular Structure under Fuzzy Environment
This paper proposes a compromise model, based on a new method, to solve the multiobjectivelarge scale linear programming (MOLSLP) problems with block angular structureinvolving fuzzy parameters. The problem involves fuzzy parameters in the objectivefunctions and constraints. In this compromise programming method, two concepts areconsidered simultaneously. First of them is that the optimal alter...
متن کامل