15 papers · ranked by Valyu relevance
Thomas Bagrel
La programmation par passage de destination introduit le concept de destination, qui représente l'adresse d'une cellule mémoire encore vierge sur laquelle on ne peut écrire qu'une fois. Ces destinations peuvent être passées en tant que paramètres de fonction, permettant à l'appelant de garder le contrôle de la gestion…
Fernando Alves, Delano Oliveira, Fernanda Madeiral, Fernando Castor
—Language constructs inspired by functional programming have made their way into most mainstream programming languages. Many researchers and developers consider that these constructs lead to programs that are more concise, reusable, and easier to understand. Notwithstanding, few studies investigate the prevalence of…
Francis Sergeraert
A paper [5] has recently been published. This paper is faulty: 1) The standard requirements about the definition of an algorithm are not respected, 2) The main point in the complexity study, namely the functional programming component, is absent. The Editorial Board of the SIAM JC had been warned a confirmed…
Morgan C. Benton, Nicole Radziwill
Declarative styles such as functional programming (FP) are rapidly gaining ground on their imperative cousins, including procedural and object-oriented programming. The shift is subtle because it is happening within the context of multiparadigm programming languages such as JavaScript. FP is better suited to modern…
John MacCormick
This document is intended as a stand-alone textbook chapter to be used for introducing some functional programming concepts into a course in which the primary teaching language is Java. For details of the approach, please see the paper "Functional programming, in the data structures course, in Java" by J. MacCormick…
Attila Egri-Nagy
'Declarative' is a word we use often and it makes a good sense in everyday conversation in software development. For instance, ". . . we like to write our programs in such a way that the code looks like a description of the solution;" [11]. Declarative programming is often associated with functional and logic…
Michael Hanus
Logic programming is a flexible programming paradigm due to the use of predicates without a fixed data flow. To extend logic languages with the compact notation of functional programming, there are various proposals to map evaluable functions into predicates in order to stay in the logic programming framework. Since…
Stanisław Ambroszkiewicz
"The von Neumann vicious circle" means that non-von Neumann computer architectures cannot be developed because of the lack of widely available and effective non-von Neumann languages. New languages cannot be created because of lack of conceptual foundations for non-von Neumann architectures. The reason is that…
Thomas Bagrel, Arnaud Spiwack
Destination passing —aka. out parameters— is taking a parameter to fill rather than returning a result from a function. Due to its apparently imperative nature, destination passing has struggled to find its way to pure functional programming. In this paper, we present a pure functional calculus with destinations at its…
Jeremy G. Siek, Michael M. Vitousek, Jonathan D. Turner
Stack allocation and first-class functions don't naturally mix together. In this paper we show that a type and effect system can be the detergent that helps these features form a nice emulsion. Our interest in this problem comes from our work on the Chapel language, but this problem is also relevant to lambda…
Peter D. Mosses
Specifying the semantics of a programming language formally can have many benefits. However, it can also require a huge effort. The effort can be significantly reduced by translating language syntax to so-called fundamental constructs (funcons). A translation to funcons is easy to update when the language evolves, and…
In-Ho Yi
We present a novel approach to construction of a formal semantics for a programming language. Our approach, using a parametric denotational semantics, allows the semantics to be easily extended to support new language features, and abstracted to define program analyses. We apply this in analysing a duck-typed…
Nathan Braswell, Sharjeel Khan, Santosh Pande
Macros are a common part of Lisp languages, and one of their most lauded features. Much research has gone into making macros both safer and more powerful resulting in developments in multiple areas, including maintaining hygiene, and typed program staging [Rompf et al. 2013]. However, macros do suffer from various…
Duško Pavlović
| Preface | | v | | --- | --- | --- | | What? | | vii | | 1 Drawing types and functions | | 3 | | 2 | Monoidal computers: computability as a structure | 23 | | 3 | Fixpoints | 39 | | 4 | What can be computed | 53 | | 5 | What cannot be computed | 71 | | 6 | Computing programs | 79 | | 7 Stateful computing | | 97 | | 8…
Morazán, Marco T.
Introducing inner-city high school students to program design presents unique challenges. The typical assumptions of an introductory programming course, like students understand what variables and functions are, may not be safe. Therefore, asking students to define functions as part of the program design process may be…