User loginNavigation |
LtU ForumGoogle Tech Talk: Phil Gosset discusses parametric polymorphism and girard-reynolds isomorphismAsynchronous sequential processes/Theory of Distributed Objects?Anyone know much about this proposed concurrency model, as described in the book A Theory of Distributed Objects, as well as a few papers by the same authors (Caromel and Henrio)? Always on the lookout for new and interesting books to add to my collection. :) Formalizing a minimal subset of concatenative languagesI've read a bit about concatenative languages and how they can be modeled, but they seem to take a mostly informal tone. I'd like to change that, so I wrote the beginnings of a formalism on a tiny subset of concatenative languages. It's available here (the important parts are in monospaced font after an introduction). This is heavily based on existing work, which I reference. The main thing I'm wondering about is, how can I make this mathematically rigorous and prove that the combinators Well, the question of Turing-completeness may be a bit academic. Another issue of concern relates to type systems. If a set of type rules is defined on a language, how can it be shown that those rules are consistent with the operational semantics? I think a minimal set of combinators would be an optimal base for a correct type system, but I'm not sure. Why is there not a PL with a mathematical type system?Hello dear LTU community, I want to know why there is no programming language which has a type system which is modelled after or "simulating" the mathematical world? Let me shortly explain what I mean with "mathematical type system": As anyone who looks at the scientific world I, too, see that the world is modelled using mathematics. Natural scientists are using it, Engineers using mathematics and for example there is also mathematical finance. But we programmers don't use mathematics. We are translating mathematical objects like "natural numbers" to "integers", and we don't have a type named "function" as it is defined in mathematics. Our functions don't have derivatives. The programmers don't have set theory under their fingers and also nothing like analysis. I can imagine some advantages if we would have such a type system: So, but we don't have such a type system. But there are intelligent and experienced PL developers who gave us regards Actors vs. Reactive ObjectsIn their paper Reactive Objects the authors compare reactive objects to the actor model (at the end of the Related Work section). They give three advantages reactive objects have over actors:
These may have been true of the original Actor model but a modern implementation seems to feature improvements to all three points. For example, on point 2, Io features both synchronous & asynchronous message passing, where you either synchronise on the result, send the message asynchronously (prefix any message with @ and be given a future that transforms into the final result when known) or send it & ignore the result (prefix any message with @@). Undefined messages are sent up the inheritance chain, and asynchronous message delivery is handled on a first-in first-out basis. What alternative do reactive objects offer on point 1? I've not managed to work that out from the paper. Any pointers would be appreciated! I'm basically trying to situate Reactive Objects in comparison to the Actor model, functional-reactive programming, and other means of situating software as a means of responding to it's environment rather than the other way around (particularly in relation to GUI research). Easylanguage: domain specific language for trading stocks'EasyLanguage' should be of interest to people here. It is a domain specific langauge for trading stocks. The goal of the language seems to be to allow non-computer experts to translate their English descriptions of strategies into an expression which describes how trades should occur. An example from their manual: While imperative languages are most widely known and functional languages get all the glory among the 'alpha' geeks, logic programming seems to come up again and again for 'end-users' (sql, easylangauge, rules engines). Just like sql, easylanguage does allow users to define their own functions, but most people are not expected to do so. While researching DSL for trading environments, I keep coming back to Sean McDirmid's paper: Turing Completeness Considered Harmful: Component Programming with a Simple Language, mainly because this paper is the first one I encountered that makes a case against programming in a style which requries creation of functions ... odd since for the past two years I've been convincing myself that lambda-calculus is the be all and end all of programming language theory. The closest paper I can find to this language is Charting Patterns on Price History. Simon Peyton Jones' famous Composing contracts: an adventure in financial engineering Functional Pearl discusses the same industry (financial markets) but isn't directly related. Obviously FRP and Data flow languages are also relevant and LtU archives contain plenty of good material. Course on Interactive Computer Theorem Proving Based on CoqThis looks like an excellent introduction to using Coq, with a focus on programming language design: <http://www.cs.berkeley.edu/~adamc/itp>. People who have been looking for "getting started with Coq" resources should certainly check it out. Thoughts about the Best Introductory LanguageI wrote an essay titled "Thoughts about the Best Introductory Language which discusses the suitability of various languages as introductory programming languages, covers several approaches to that, explains why they are wrong or right, etc. I believe the final conclusion is less important than the actual insights and discussion presented there. Read, share, comment and enjoy! Stream Fusion[ICFP Submission - Referees skip this]
Darius Bacon suggests the SERIES package for common lisp may be related. Inferring Types for Higher Order Instructions in Stack LanguagesI recently made the final revisions of the paper on Typing Functional Stack-Based Languages and submitted it to ICFP. A big thank your to everyone here at Lambda-the-Ultimate.org for their help, especially regular LtU contributor Andreas Rossberg who played a big part in defining the type system. I have had several requests for an easier to follow explanation of how a type inference engine would work for a functional stack-based language, so I've written a short article for those interested which walks step by step through an example of how to infer types for a complex higher order function "eval(eval(noop)))" or in Cat "[] eval eval". Any questions, suggestions, or corrections would be most welcome. By cdiggins at 2007-04-11 19:04 | LtU Forum | login or register to post comments | other blogs | 6073 reads
|
Browse archives
Active forum topics |
Recent comments
8 weeks 4 days ago
8 weeks 4 days ago
8 weeks 5 days ago
8 weeks 5 days ago
9 weeks 1 day ago
9 weeks 1 day ago
9 weeks 3 days ago
9 weeks 3 days ago
9 weeks 3 days ago
9 weeks 3 days ago