User loginNavigation |
LtU ForumLiving it up with a Live Programming LanguageI've just finished a paper submission on live programming languages and how live programming is realized in SuperGlue. Any feedback is appreciated. Here is the link: http://lamp.epfl.ch/~mcdirmid/mcdirmid07live.pdf Because the paper has inlined movies, it is best read in a later version of AcroRead with QuickTime installed. Abstract: A dynamic language improves programmer productivity through flexible typing, a focus on high-level programming, and by streamlining the edit-compile-debug cycle. Live languages go beyond dynamic languages with more programmer-centric features. A live language supports live programming that provides programmers with responsive and continuous feedback about how their edits affect program execution. A live language is also based on declarative programming constructs such as rules or data-flow connections so that programmers can write less code. A live language should also provide programmers with responsive semantic feedback to enable time-saving services such as code completion. This paper describes the design a textual live language known as SuperGlue. SuperGlue is based on reactive values known as signals that are supported with declarative data-flow connections and dynamic inheritance. Through signals and dynamic inheritance, SuperGlue supports live programming, declarative programming, and responsive semantic feedback. We demonstrate live programming in SuperGlue with a working prototype. GPCE'07 Call for PapersCall for Papers Sixth International Conference on October 1-3, 2007 http://www.gpce.org/07 Important Dates: * Submission of abstracts: April 17, 2007 * Tutorial and workshop proposals: March 16, 2007 Scope Generative and component approaches are revolutionizing software GPCE provides a venue for researchers and practitioners interested in Submissions 10 pages in SIGPLAN proceedings style (sigplanconf.cls) reporting Please note that in contrast to last year, GPCE 2007 is not using a Topics GPCE seeks contributions in software engineering and in programming * Generative programming Reports on applications of these techniques to real-world problems are Submissions must adhere to SIGPLAN's republication policy. Please contact General Chair * Charles Consel (LABRI/INRIA, Bordeaux) Program Committee Program Chair: * Julia Lawall (DIKU, University of Copenhagen) Program Committee Members: * Edwin Brady (University of St Andrews, UK) Abstract Data Type Usage AnalysisI am interested in implementing a program analysis, where the operations applied to an instance of an abstract data type (e.g. a list) determine the implementation's choice of data structure (e.g. array vs linked list). For example if "insert" or "delete" is used, then a linked list might be chosen, or if "nth" operation (accessing the nth item) is applied then an array might be used. I am unfamiliar with such analyses. Can anyone recommend any papers or related work? John Backus has passed awayJohn Backus, inventor of FORTRAN, the BNF, and winner of the 1977 Turing Award, has passed away. New York Times has an obituary. I'm sure the more eloquent members of LtU will have much to say about him, so I'll just point out that his Turing Award lecture is an absolute classic, and seems to be more relevant than ever. My condolences to the Backus family and friends. Question on categorizing a languageI would like to solicit some opinions from the community on a language concept I've been working on. I'm not sure what category to describe it as. The language is called 2e -- two e's, as in expression evaluator -- and for the most part, that is exactly what it does, evaluate an expression. Other than the syntax used for defining functions, the whole program is one large single expression, composed of operators and operands. What looks like a statement delimiter (the ";" operator) is actually similar to the comma operator in C; it is a "join", where the expression on both sides of the operator are evaluated, and the left side result is thrown away and the right hand expression result is returned. This is why I assert that the whole program (minus function definitions) is one single expression. Conditionals are handled via a C style inline-conditional and "while" loops are done with an iterative variant of the inline-conditional syntax, so that complex code segments can be part of a larger expression. There are no other flow control constructs (other than function calls). On the surface, it looks like a procedural language, but it doesn't execute a sequence of steps, instead it evaluates one expression. Also, functions are recursive, and you can pass functions as arguments to other functions. These two items combined make it almost fit the requirements for a functional language. However, it includes a standard assignment operator that is used to change state of variables (the assignment operator can logically appear anywhere in an expression, just like C), so that seems to exclude it from the functional category (although there is no reason you can't program in a functional style). So my main question is, what type of language is this, functional or procedural? Or some other type that I haven't studied? My second question is if anyone would find this language useful for any projects or research purposes. The main appeals of the language is an algebraically "clean" syntax and a rather simple easy to understand interpreter. The parser was done by hand using classical algorithms, instead of using lexx / yacc, and the interpreter is provided in the form of a library that can be imbedded into other applications. I've got some clean up to do on the code to make it usable for study (there's been some performance modifications added that end up making it harder to read; I've got plans to fix that), and more documentation is needed. I've seen mention on this site of plans that others have for creating experimental languages, feel free to grab any techniques or code that you want. The site for 2e is lang2e.sourceforge.net, where there is some documentation and code samples, but I can post some specifics that highlight various language aspects if that helps. Thanks. Tracing in DrSchemeHi guys, I am a freshman student in Kenya. After I stumbled on MIT's ocw website, I got interested in Scheme and after a few while on this LtU site, I felt like starting with DrScheme is the best way since its tailoured to the biginners. I am very new in Programming and we just don't have great teachers who have command of the subject here in Kenya. then I defined this: (define (area-of-ring outer inner) Virgil: Objects on the Head of a PinRemarkable little language. This thread on embedded languages got me looking, and I came across this paper:
Looks very promising. It's notion of "initialization-time" is worthy of further thought. See also the Virgil homepage, where you can download preliminary source releases. The features page list a number of interesting tidbits as well: Virgil will soon support tail call optimization! In particular, see what's coming in Virgil II: * Parametric types Washington DC- FringeDC Haskell/Scheme Presentation March 24thMarch 24th 2007, 6PM Formal meeting- Intro to Haskell, plus some PARSEC wizardry. Adam Turoff, our resident Haskell guru, will be giving a presentation on said language. If you live near DC and have an interest in Haskell, this'll be your rare opportunity to get exposed to the laziest of functional languages! Plus, we'll have a small presentation on some fun plt-scheme code as an opening act (and, of course, we'll go out for beer as a closing act) http://www.lisperati.com/fringedc.html By drcode at 2007-03-16 03:22 | LtU Forum | login or register to post comments | other blogs | 5003 reads
Syntax Solicited for Imperative-flavored Concurrent Language with Keywords
Who would be willing to suggest a syntax to go with the semantics I allude to
here?
Since the language I am hinting at here (thinking to flesh a definition out, once someone else has drafted a syntax) does not try for referential transparency, and therefore retains sort of an imperative flavor, I assign the langauge the working title, Imperatrix Mundi. If someone wants to suggest another name, maybe I'd favor adopting such suggested name instead. I think it could be interesting (for me with help and suggestions from you readers) to flesh out a language of this sort, even though for some years I have been thinking a referentially transparent (RT) language would be the ultimate way to go. I suggest Imperatrix Mundi as an intermediate step in a possible evolution toward an eventual RT language for general computer programming purposes that don't require blindingly fast performance nor specialization to an unusual application area. For talking about the message passing in this language, I borrow the terms "bird" and "nest" from ToonTalk, but with some semantic differences, chief among them being that whereas in ToonTalk, bird/nest channels guarantee that the messages read off the nest come in the same order as they were handed to the bird, in this language I say that the order of the messages is not guaranteed to be preserved. This language does not try for referential transparency. However, it must meet a weaker requirement, that the values (or references or meanings) denoted by the occurrences of a given identifier in a given context could be exchanged with each other without changing the semantics of the segment of code occupying the context. This should happen because of don't-care nondeterminism. For example, suppose a <- b is a command meaning to send a message denoted by b via a bird denoted by a, and the code says a <- b; a <- c. What this would mean is that the message stream sent along 'a' is some random merge of a1 with a2; a1 <- b; a2 <- c. The bird, 'a', would get the messages b and c, and whoever is reading the nest at the other end could get b before c or c before b. A segment of code consists of a bag of commands (or statements if you prefer to think of them that way); the order of the commands cannot affect the meaning of the segment. List of semantic constructs that need syntactic expression:
Typing a Functional Stack-Based LanguageI have had many helpful comments and reviews on my recent paper about Cat, but the biggest criticism seems to be that I don't motivate the paper very well. This is perhaps the hardest thing to do! The contribution of the paper is that it is the first time (AFAIK) that anyone has presented a type system for a pure functional stack-based language. To understand the implications, consider if we were to introduce the ability to use primitive operations as first class values in MSIL or JVML in a type-safe manner. So my question to the community is, is that sufficient motivation and should I emphasize these points in the paper? I have even considered rewriting the name and abstract as follows:
Perhaps this kind of paper would be more well received by the community? Thanks again for everyone's help! By cdiggins at 2007-03-14 14:49 | LtU Forum | login or register to post comments | other blogs | 6121 reads
|
Browse archives
Active forum topics |
Recent comments
8 weeks 3 days ago
8 weeks 4 days ago
8 weeks 4 days ago
8 weeks 5 days ago
9 weeks 1 day ago
9 weeks 1 day ago
9 weeks 2 days ago
9 weeks 3 days ago
9 weeks 3 days ago
9 weeks 3 days ago