User loginNavigation |
LtU ForumThe three dimensions of proofsEven though I am not completely sure if LTU is the appropriate place to discuss this paper by Yves Guiraud, I see no danger in posting it anyway. Abstract: In this document, we study a 3-polygraphic translation for the proofs of SKS, a formal system for classical propositional logic. We prove that the free 3-category generated by this 3-polygraph describes the proofs of classical propositional logic modulo structural bureaucracy. We give a 3-dimensional generalization of Penrose diagrams and use it to provide several pictures of a proof. We sketch how local transformations of proofs yield a non contrived example of 4-dimensional rewriting. It discusses higher dimensional rewriting for SKS a deductive system for classical propositional logic in the style of the Calculus of Structures. Parameteric Polymorphism from a C++ Perspective (good or bad?)I consider myself an expert in imperative programming languages but I'm very green in the field of modern functional languages (I'd be better off alligator wrestling than writing monads, but I can still 'cadr' your 'cons'). Here is a quote from a well written post by Matt Helige ( http://lambda-the-ultimate.org/node/1455 ) which kept me up last night:
I didn't "see" what Matt was talking about until today. You have to realize that I think of C++ templates (and Java / C# generics) when I think about parameteric polymorphism. So I didn't understand where the restriction came from. What had confused me was that in C++ the compiler does allow type choices by overloading template functions. Whether or not this is a "good thing" is probably debateable, so I figure why not debate it. Why or why not is C++ style parameterization where Fortress Spec 0.903
There is now a chapter on the memory model (Ch. 18). Again, this spec looks more tidy than its predecessors. The Push Programming LanguagePush 3.0 Language Description:
The Nature of Lisp (a tutorial)For a long time now, on and off, I've been writing a Lisp tutorial for regular programmers. The idea was not to explain intricate details of Lisp, but help people understand what exactly the nature of the language is, and why some of its features are great for modern software development. I'm very interested in feedback so I can improve upon the tutorial and explain things people still don't understand. You can read it here. Links for Programming Language course videosAre there any links to online lectures for a course on programming languages? (apart from SICP lectures) Multidimensional Virtual ClassesBeing on the subject of virtual classes: a new article Multidimensional Virtual Classes by Vaidas Gasiunas, Klaus Ostermann and Mira Mezini.
A Hacker's Introduction to Partial EvaluationCan anyone find this online, or send me a copy? All links I find are 404... I sure hope Darius is reading the LtU forum at the moment... APL Quote Quad Call for PapersThe ACM Special Interest Group for Array Programming Languages is expanding it's scope beyone classic APL. Papers on Lush implementation or array oriented applications would be appropreate. ANNOUNCEMENT Issue 34:3 of APL QUOTE QUAD is now closed and ready for publishing. CALL FOR PAPERS APL QUOTE QUAD The next issue of APL Quote Quad is being designed. Prospective authors Submitted papers, in Microsoft Word (.doc), Rich Text Format (.rtf), Manuel Alfonseca Care must be taken to make the submitted papers self-contained, The tentative time limit for the new material is May 31st, 2006. By shrogers at 2006-05-06 21:13 | LtU Forum | login or register to post comments | other blogs | 6179 reads
Designing a Type Notation for a Stack Based Functional LanguageI am designing a dialect of Joy called 'Big Cat'. Like Joy, Big Cat is a pure stack based functional language (or concatenative language, if you like the term). This means that every function takes a single stack as a parameter, and returns a new stack as a result. Most programs expect a certain stack configuration, so I am devising a syntax for expressing the desired type configuration. One of the changes is the introducction of a type notation for operations. Here is my current proposal: swap (T, U) => (U, T); dup (T) => (T, T); dupN (int, T) => (T*); pop (T) => (); popN (int, T*) => (); if (() => T, () => U, bool) => (U|T); I welcome feedback, and suggestions. Let me know if the syntax is not intuitive and you need clarification, thanks! |
Browse archives
Active forum topics |
Recent comments
8 weeks 1 day ago
8 weeks 1 day ago
8 weeks 2 days ago
8 weeks 2 days ago
8 weeks 5 days ago
8 weeks 5 days ago
9 weeks 2 hours ago
9 weeks 6 hours ago
9 weeks 7 hours ago
9 weeks 7 hours ago