Filters








2,750 Hits in 7.3 sec

A Lazy Language Needs a Lazy Type System: Introducing Polymorphic Contexts [article]

S. Doaitse Swierstra and Marcos Viera and Atze Dijkstra
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

Chris Hankin, Daniel Le Métayer
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]

Alban Reynaud, Gabriel Scherer, Jeremy Yallop
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]

Florian Haftmann, Tobias Nipkow
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

S. Frankau, A. Mycroft
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

Ross Tate, Alan Leung, Sorin Lerner
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

Ross Tate, Alan Leung, Sorin Lerner
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

Ross Tate, Alan Leung, Sorin Lerner
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]

Arjen van Weelden, Rinus Plasmeijer
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

Olaf Chitil
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

Olaf Chitil
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]

Olaf Chitil, Dan McNeill, Colin Runciman
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]

Sriram Gopal, Wesley Tansey, Gokulnath C. Kannan, Eli Tilevich
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

Franz Siglmüller
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