User loginNavigation |
Computer music: a bastion of interactive visual dataflow languagesThe area of computer music has been designing systems for aiding music composition and performance for over 40 years now. The developers have not been much influenced by mainstream programming fads, but have been driven mainly by the needs of composers and performers. Current systems keep the principal original metaphor, the patchboard: a collection of live modules ("patches") connected by cables and easily inspected and modified on the fly. This metaphor has full GUI support and is extended with interactive visual tools for abstraction and exploration, such as the maquette. The language semantics are based on deterministic concurrency, with controlled use of nondeterminism and state. Current systems are full-fledged programming platforms with visual dataflow languages. Two examples among many are the Max/MSP platform for controlling and generating music performances in real time and the OpenMusic design studio for composers. Max/MSP has two visual dataflow languages: one for control and one for real-time waveform generation. OpenMusic has a dataflow language controlled interactively with many tools for composers. These systems are actually general-purpose programming platforms. They show that visual dataflow can be made both practical and scalable. In my view, this is one promising direction for the future of programming. Why Did M.I.T. Switch from Scheme to Python?Daniel Weinreb has a short investigative piece about why MIT's well-known 6.001 course based around SICP and Scheme has been replaced with Python:
Also discussed previously on LtU here. A Brief, Incomplete ... History of Programming LanguagesLtU Contributing Editor James Iry has written a brief history covering every prominent programming language and inventor: A Brief, Incomplete ... History of Programming Languages However, some of the details seem open to question. Perhaps LtU readers could help him iron out any historical inaccuracies. LNGen
There are really three stories here:
From the U. Penn folks who brought us the Coq tutorial at POPL '08. By Paul Snively at 2009-05-07 20:28 | Implementation | Semantics | Software Engineering | Type Theory | 2 comments | other blogs | 7553 reads
Achieving Security Despite Compromise Using Zero-KnowledgeAchieving Security Despite Compromise Using Zero-Knowledge
This is the follow-up to this story. The prior work did not account for compromised participants. This work does. I continue to be excited about the prospect of this previous story's work being applied to the type system described in this story, possibly resulting in an awesome new language for developing secure software. By Paul Snively at 2009-05-07 20:20 | Implementation | Semantics | Type Theory | 2 comments | other blogs | 6950 reads
An Interview with the Diamondback Ruby TeamOn Ruby has an interview with two members of the Diamondback Ruby team.
The interview covers DRuby's goals as well as a bit about its OCaml based infrastructure. More technical information about DRuby's type system can be found in Static Type Inference for Ruby. Purpose-Built LanguagesMike Shapiro, Purpose-Built Languages, ACM Queue vol. 7, no. 1, February 2009. Mike Shapiro from Sun Microsystems examines the evolution of what he calls "purpose-built languages" (essentially domain-specific languages). Shapiro discusses the way that such languages have often been a key part of the development of larger software systems, and describes how many of them have sprung into existence and evolved without formal design. In particular, he traces the evolution of the The debugger tale illustrates that a little purpose-built language can evolve essentially at random, have no clear design, no consistent grammar or parser, and no name, and yet endure and grow in shipping operating systems for more than 40 years. In the same time period, many mainstream languages came and went into the great beyond... For purpose-built languages, a deep connection to a task and the user community for that task is often worth more than clever design or elegant syntax. The same article also appeared in the April 2009 issue of Communications of the ACM. Conversations with the Creators of Major Programming LanguagesBranching Time vs. Linear Time: Semantical PerspectiveSumit Nain and Moshe Vardi, Branching Time vs. Linear Time: Semantical Perspective, invited ATVA'07 paper.
In revisiting the notion of process equivalence, which is a fairly central part of concurrency theory, Nain and Vardi end up arguing in favor of a purely trace-based notion of equivalence and the use of linear-time logics. This in turn leads to a rejection of bisimulation as a tool for establishing process equivalences:
They take pains to point out that they are not claiming that bisimulation or CTL should be abandoned or are not useful. Rather their emphasis is on the fact that bisimulation is not a contextual equivalence and is therefore not appropriate for establishing equivalence between (for example) a specification and its implementation. As they say in the conclusion of the paper:
By Allan McInnes at 2009-04-26 22:55 | Parallel/Distributed | Semantics | 26 comments | other blogs | 13630 reads
Intentional tool released |
Browse archives
Active forum topics |
Recent comments
36 weeks 3 days ago
36 weeks 3 days ago
36 weeks 3 days ago
1 year 6 weeks ago
1 year 10 weeks ago
1 year 12 weeks ago
1 year 12 weeks ago
1 year 15 weeks ago
1 year 19 weeks ago
1 year 19 weeks ago