User loginNavigation |
LtU ForumBreaking the Abstraction CeilingPrograming Languiges like: ruby, (lisp/scheme), smalltalk, dylan, ect.; do not limit your expressivenes by removing features like Dynamic Typeing, Lambda, Higher Order Functions. whereas languiges digsinged for DOLTS like: Java; artifisaly limit your expressivenes by Weak Static Typeing System, Lack of lambda, lack of ability to pass in functions. As programing languiges inch towrds lisp, the Abstraction ceeling of an avreage languige gets higher and higher. Programming (language) puzzlesLike math puzzles and physics puzzles, there are many different kinds of programming puzzles. One way to classify programming puzzles is by the skills they exercise or the concepts they illustrate: knowledge of a language, designing a new algorithm, understanding a specification, etc. On LtU, I'm interested in puzzles that are not specific to a language yet rely on a PL notion. Here's one attempt of mine, inspired by my student Jun Dai: Your stair-climbing robot has a very simple low-level API: the "step" function takes no argument and attempts to climb one step as a side effect. Unfortunately, sometimes the attempt fails and the robot clumsily falls one step instead. The "step" function detects what happens and returns a boolean flag: true on success, false on failure. Write a function "step_up" that climbs one step up (by repeating "step" attempts if necessary). Assume that the robot is not already at the top of the stairs, and neither does it ever reach the bottom of the stairs. How small can you make "step_up"? Can you avoid using variables (even immutable ones) and numbers? What do you think? What is your solution? How are the solutions related to each other? (If "step" fails with a fixed probability, then how many times does "step_up" expect to call "step"?) More importantly, what is your favorite PL puzzle that is not (terribly) language-specific? Erlang vs C++ for Robust Telecom Software
Are High-level Languages suitable for Robust Telecoms Software? (pdf) also High-Level Techniques for Distributed Telecommunications Software How to write a Programming Language Paper?It would be of great interest to me to learn how to write a good paper for introducing a programming language formally (or at least semi-formally) which would be acceptable for publication in a reputable journal. Are there any tutorials, or good examples anyone can recommend I should follow as a template? I also wonder if it is expected that every new programming language paper be accompanied by a proof of the soundness/unsoundness of the type system, or if I can by leaving that for another time (and perhaps another more capable person)? Just introducing the basic semantics of the language with some rigour is in of itself a pretty signficiant challenge, considering that I have to resort to some pretty heavy techniques (for me at least) to describe the Cat type system (e.g. kind systems, parameteric polymorphism). Practical LazinessHi y'all! I have a language that I've been working on for a while that I intend to be lazy. At this point, the "flavor" of the language is pretty much set, but I'm still working out some of lower-level details, and I'm wondering about the implementation of laziness. Strict-evaluation is certainly easy to implement, since one never bothers to create thunks, but for non-strict evaluation, is there any literature on the practical elements that go into choosing how frequently to turn thunks into values? Do most implementations wait until they hit conditional forms or IO, or do they tend to put upper-bounds on how large a chain of thunks can get, or ... ? thanks! JimDesu Stephen Wolfram forecasts the futureFrom this article:
A reflective functional language for hardware design and theorem provingJ. Grundy, T. Melham, and J. O'Leary, A reflective functional language for hardware design and theorem proving, Journal of Functional Programming, 16(2):157-196, March 2006. This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decompose expressions in the reFLect language itself. reFLect is apparently a follow-on to the earlier FL language (which I asked about in an earlier thread), the language used in Intel's Forte hardware verification environment. Within Forte, reFLect can be used to perform a seamless mix of theorem proving and model-checking (invocation of a model-checker is just a reFLect function call, with the source text of any call to the model-checker that returns true becoming a theorem of the logic). Tom Melham's reFLect page has a little more information, and also points out that a Linux version of the Forte system, including an implementation of reFLect, is freely downloadable from Intel. SK Calculus not Consider SeKsy?
For my first post as editor I thought I'd bring up an observation of mine while perusing the literature. of what appears to be a lack of usage of the typed SK calculus in theoretical papers. In my studies I am very surprised it hasn't come up more often, since it is elegant, and easy to understand. I encountered the typed SK calculus first in Laufer and Odersky 1993. A web search for the phrase "typed SK calculus" yielded a brief usage on the Haskell Wiki in a discussion on Generalized Data Types. I first encountered the SK calculus without types when reading Brent Kerby's A Theory of Concatenative Combinators which is an informal examination of combinators in Joy. As a referesher, the typed SK calculus is made up of only two operations S and K: K : a -> b -> a S : (a -> b -> c) -> (a -> b) -> a -> c So the questions I am pondering are: why is the lambda calculus so much more popular? Is it because Scheme and other similar languages more closely resemble the lambda calculus? If there was a language based on the SK calculus, would it become more popular? I also wonder what applications there are for the SK calculus, and what place it should occupy in my programming language theory arsenal? Distributed Meta-ProgrammingNew paper by Hongwei Xi and others, Distributed Meta-Programming. Also contrasts the presented approach with that of Alice:
By naasking at 2006-11-30 20:27 | LtU Forum | login or register to post comments | other blogs | 5086 reads
Possibly the world's shortest APL interpreterEMPL: Small APL for the Intel 8080
I guess we should look forward to the completion of Python for Toddlers :-) |
Browse archives
Active forum topics |
Recent comments
8 weeks 3 days ago
8 weeks 3 days ago
8 weeks 4 days ago
8 weeks 4 days ago
9 weeks 1 day ago
9 weeks 1 day ago
9 weeks 2 days ago
9 weeks 2 days ago
9 weeks 2 days ago
9 weeks 2 days ago