A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2020; you can also visit the original URL.
The file type is application/pdf
.
Filters
A Lazy Language Needs a Lazy Type System: Introducing Polymorphic Contexts
[article]
2016
arXiv
pre-print
Most type systems that support polymorphic functions are based on a version of System-F. We argue that this limits useful programming paradigms for languages with lazy evaluation. ...
Our proposed language extension, i.e. the introduction of polymorphic contexts, reverses the relationship between the context of a function call and the called function with respect to where it is decided ...
Acknowledgments We want to thank Andres Löh, Tom Schijvers and Andrea Vezzosi for discussing System-F related issues with us. ...
arXiv:1612.04610v1
fatcat:uih5d6sntzdj3b2wt6px4x6y24
Deriving algorithms from type inference systems
1994
Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '94
The contribution of this paper is twofold: first we show how to transform a program logic into an algorithm and, second, we introduce the notion of lazy types and show how to derive an efficient algorithm ...
Early work emphasised the efficiency of type inference algorithms and paid little attention to the correctness of the inference system. ...
Section 5 introduces our notion of lazy types and presents a lazy types system equivalent to the previous ones. ...
doi:10.1145/174675.177858
dblp:conf/popl/HankinM94
fatcat:r4rlumbotrc5df2z7afrrr2ntu
Declarative Programming
[chapter]
2013
Encyclopedia of Systems Biology
As the run-time system needs to handle non-determinism anyway, Curry also provides a direct way to define non-deterministic operations. ...
Without further language support we would need to resort to model non-determinism explicitly like in a purely functional language, e.g., by computing lists of results. ...
= Leaf t > >= f = mergeTrees (fmap f t) mergeTrees :: Tree (Tree a) → Tree a mergeTrees Empty = Empty mergeTrees (Leaf t) = t mergeTrees (Fork l r) = Fork (mergeTrees l) (mergeTrees r) for the data type ...
doi:10.1007/978-1-4419-9863-7_100335
fatcat:224vgmt73vbvzepwfux4ufd24e
A type system for recursive value definitions
[article]
2020
arXiv
pre-print
Our implementation of this new check replaced the existing check used by the OCaml programming language, a fragile syntactic/grammatical criterion which let several subtle bugs slip through as the language ...
We document some issues that arise when advanced features of a real-world functional language (exceptions in first-class modules, GADTs, etc.) interact with safety checking for recursive definitions. ...
This system is very powerful, but we view it as a core language rather than a surface language: encoding a specific usage pattern may require changing the types of the components involved, to introduce ...
arXiv:1811.08134v3
fatcat:qyaz3onta5hwjd5lyg5hje76nq
Code Generation via Higher-Order Rewrite Systems
[chapter]
2010
Lecture Notes in Computer Science
To bridge the gap between the source (higherorder logic with type classes) and the many possible targets (functional programming languages), we introduce an intermediate language, Mini-Haskell. ...
To relate the source and the intermediate language, both are given a semantics in terms of higher-order rewrite systems (HRSs). ...
Isabelle's HOL is a typed λ-calculus with polymorphism and type classes. ...
doi:10.1007/978-3-642-12251-4_9
fatcat:7fodjrhahbacjdudw5kjlh4kae
Stream processing hardware from functional language specifications
2003
36th Annual Hawaii International Conference on System Sciences, 2003. Proceedings of the
Lava) have used functional languages as a form of macro-language, so that executing a program generates a net-list (structural) description, while our language is compiled directly ("behaviourally") to ...
We introduce our language, SASL, compare our approach to that of synchronous stream/signal languages, and give example functional descriptions which can be compiled to hardware. ...
Acknowledgements The first author gratefully acknowledges a PhD studentship from Altera; this work was partly supported by (UK) EPSRC grant GR/N64256. The anonymous reviewers provided helpful remarks. ...
doi:10.1109/hicss.2003.1174809
dblp:conf/hicss/FrankauM03
fatcat:yseapntikzdd7kzquqovjrqsay
Taming wildcards in Java's type system
2011
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation - PLDI '11
work, and techniques for improving the Java type system as a whole. ...
Wildcards have become an important part of Java's type system since their introduction 7 years ago. Yet there are still many open problems with Java's wildcards. ...
Thus, Java wanted a type system beyond standard parametric polymorphism to address these limitations.
Wildcards Wildcards were introduced as a solution to the above problem among others [18] . ...
doi:10.1145/1993498.1993570
dblp:conf/pldi/TateLL11
fatcat:gwdflnxi6be7zcj3sgflv4iv74
Taming wildcards in Java's type system
2011
SIGPLAN notices
work, and techniques for improving the Java type system as a whole. ...
Wildcards have become an important part of Java's type system since their introduction 7 years ago. Yet there are still many open problems with Java's wildcards. ...
Thus, Java wanted a type system beyond standard parametric polymorphism to address these limitations.
Wildcards Wildcards were introduced as a solution to the above problem among others [18] . ...
doi:10.1145/1993316.1993570
fatcat:fmtcaifkxfddplaqialf57gf6e
Taming wildcards in Java's type system
2012
SIGPLAN notices
work, and techniques for improving the Java type system as a whole. ...
Wildcards have become an important part of Java's type system since their introduction 7 years ago. Yet there are still many open problems with Java's wildcards. ...
Thus, Java wanted a type system beyond standard parametric polymorphism to address these limitations.
Wildcards Wildcards were introduced as a solution to the above problem among others [18] . ...
doi:10.1145/2345156.1993570
fatcat:kgy7hcgijvdiljhk2gyr2hbgaq
Towards a Strongly Typed Functional Operating System
[chapter]
2003
Lecture Notes in Computer Science
It is a prototype implementation of a strongly typed operating system written in Clean. ...
The shell uses a functional-style command language that allows construction of new processes, and it type checks the command line before executing it. ...
We will introduce the static/dynamic hybrid type system of Clean in section 2. ...
doi:10.1007/3-540-44854-3_14
fatcat:hd6uof7pvnfjhh3c2ivtlluuky
Practical typed lazy contracts
2012
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming - ICFP '12
From now on lazy functional languages can profit from the assurances in the development of correct programs that contracts provide. ...
That is a shame, because contracts consist of pre-and post-conditions for functions that go beyond the standard static types. ...
typed Racket, many functional programming languages have a static type system based on Hindley-Milner types with parametric polymorphism. ...
doi:10.1145/2364527.2364539
dblp:conf/icfp/Chitil12
fatcat:ksq77shz5fbjffzfnlzqseg6oe
Practical typed lazy contracts
2012
SIGPLAN notices
From now on lazy functional languages can profit from the assurances in the development of correct programs that contracts provide. ...
That is a shame, because contracts consist of pre-and post-conditions for functions that go beyond the standard static types. ...
typed Racket, many functional programming languages have a static type system based on Hindley-Milner types with parametric polymorphism. ...
doi:10.1145/2398856.2364539
fatcat:whtqnhqusrguvgyufjfqrj5pne
Lazy Assertions
[chapter]
2004
Lecture Notes in Computer Science
So in a lazy functional language assertions should be lazy -not forcing evaluation, but only examining what is evaluated by other parts of the program. ...
We explore the subtle semantics of lazy assertions and describe sequential and concurrent variants of a method for checking lazy assertions. All variants are implemented in Haskell. ...
Acknowledgements Thanks to Dean Herington, Claus Reinke and Simon Peyton Jones for their contributions to a discussion on the Haskell mailing list about how to achieve data-driven concurrency. ...
doi:10.1007/978-3-540-27861-0_1
fatcat:5n4rapwgfzdgboq4hxergt6rci
DeXteR – An Extensible Framework for Declarative Parameter Passing in Distributed Object Systems
[chapter]
2008
Lecture Notes in Computer Science
In modern distributed object systems, reference parameters are passed to a remote method based on their runtime type. ...
In addition, we describe DeXteR, an extensible framework for transforming a type-based remote parameter passing model to a declaration-based model transparently. ...
We presented a framework for declarative parameter passing in distributed object systems as a better alternative to type-based parameter passing. ...
doi:10.1007/978-3-540-89856-6_8
fatcat:jfuaqjc3xjbwndasjxwmn44pli
Type-Based Resource Analysis on Haskell
2019
Electronic Proceedings in Theoretical Computer Science
Using the plugin API of GHC, we convert the Haskell code into a simplified representation called GHC Core. We then apply a type-based system which derives linear upper bounds on the resource usage. ...
This setup allows us to analyze actual Haskell code, whereas previous implementations of similar analyses do not support any commonly used lazy functional programming languages. ...
In his work, Jost introduced a custom language Arthur which can be analyzed statically using a custom type system. ...
doi:10.4204/eptcs.298.4
fatcat:d2g6bfhey5aohe2czgmnfgbce4
« Previous
Showing results 1 — 15 out of 2,750 results