User loginNavigation |
LtU ForumMatthew Flatt on Racket SubmodulesA blog post on the Racket Blog describes Racket newly-added submodules, along with interesting use cases.
Talents: Dynamically Composable Units of ReuseTalents: Dynamically Composable Units of Reuse by Jorge Ressia, Tudor Gîrba, Oscar Nierstrasz, Fabrizio Perin, and Lukas Renggli. Proceedings of International Workshop on Smalltalk Technologies (IWST 2011), p. 109—118, 2011.
WatA pretty funny video by Gary Bernhardt on some surprising behaviour in Ruby and JavaScript. I think Wat as a term of art for this phenomenon is quite appropriate. There's also a follow-up blog post by Adam Iley explaining some of the behaviours in JS seen in that video, if anyone wants to understand the underlying semantics behind these behaviours. Since we're all PL enthusiasts here, I expect everyone here will have their own lessons to take from this 4 minute video. Myself, it seems a perfect example of the dangers of implicit conversions and overloading. Stuff like this makes we want to crawl back to OCaml where overloading is forbidden. Pythonect (A New Programming Language) Call for Syntax! All feedback and comments are appreciated!Hi All, Order structure, an excercise in abstraction and multiple inheritanceOrder structures seem to be abstract concepts of theoretical mathematics with
The article Order structure, an excercise in abstraction and multiple inheritance Why is it interesting to carve out the order structure? It is possible to prove a lot of properties by just using the definition of A New Paradigm for Component-Based DevelopmentThe May issue of Journal of Software contains a paper that applies dependent type theory to component-based programming.
The paper has open access and is available from here. PDF direct link. By Johan Georg Granström at 2012-05-29 11:19 | LtU Forum | login or register to post comments | other blogs | 6013 reads
Implementing abstract classes automatically?Here is an interesting construct I'm working with recently. Say we have an abstract class (trait) with one abstract method do:
trait A {
abstract void do();
}
Now say we have two implementations:
trait B : A {
override void do() { ... }
}
trait C : A {
override void do() { ... }
}
object myUnderspecifiedA : A { ... }
Given an under specified object that extends A, the compiler could choose either B or C to "complete" it; perhaps we have a model that expresses that an object that extends A more often extends B rather than C, so why not just select that? Also, the object might only be able to extend one trait and not the other to implement "do," consider:
trait D : A {
abstract void bar();
}
trait E : D {
override void bar() { ... }
}
trait F : D {
override void bar() { ... }
}
trait B : E {
override void do() { ... }
}
trait G : A {
abstract void foo();
}
trait C : F, G {
override void do() { ... }
}
trait H : G {
override void foo() { ... }
}
object myUnderspecifiedAWithF : A with F { ... }
In this case, the compiler could have the object extend C but not B, since in the latter case the bar method would be implemented in two different ways. Now, the completion of an object with additional traits is recursive: because we have the object extend C, we must now find a trait to implement the abstract foo method from an extended G trait, so we then also choose H (the final solution includes A, F, C, H). Finding a solution for the object then involves finding a trait that implements an abstract method, adding that trait to the extend list, then solving for additional abstract methods; the solution could always dead-end and require backtracking, so this algorithm kind of looks like a Prolog solver. Has anyone heard of a class system like this before? My goal is to have a language where you can under specify a program and the compiler will fill in the gaps by finding traits to implement abstract methods that maintains consistency. A "best" solution could be chosen based on a model that includes "can-be" probabilities. Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack OverflowA quite interesting and definitely LtU-relevant blog post on "Crowd documentation". Which is actually just a good sales pitch for the following technical report: Crowd Documentation: Exploring the Coverage and the Dynamics of API Discussions on Stack Overflow Chris Parnin, Cristoph Teude, Lars Grammel and Margaret-Anne Storey (2012) Traditionally, many types of software documentation, such as API documentation, require a process where a few people write for many potential users. The resulting documentation, when it exists, is often of poor quality and lacks sufficient examples and explanations. In this paper, we report on an empirical study to investigate how Question and Answer (Q&A) websites, such as Stack Overflow, facilitate crowd documentation — knowledge that is written by many and read by many. We examine the crowd documentation for three popular APIs: Android, GWT, and the Java programming language. We collect usage data using Google Code Search, and analyze the coverage, quality, and dynamics of the Stack Overflow documentation for these APIs. We find that the crowd is capable of generating a rich source of content with code examples and discussion that is actively viewed and used by many more developers. For example, over 35,000 developers contributed questions and answers about the Android API, covering 87% of the classes. This content has been viewed over 70 million times to date. However, there are shortcomings with crowd documentation, which we identify. In addition to our empirical study, we present future directions and tools that can be leveraged by other researchers and software designers for performing API analytics and mining of crowd documentation. By gasche at 2012-05-28 09:35 | LtU Forum | login or register to post comments | other blogs | 4123 reads
D3: Thinking with JoinsD3 is a popular HTML5 visualization framework. While similar to other JS frameworks in its exposure of CSS/SVG, its enter()/exit() abstraction is an elegant leap for structuring code. Check out Mike Bostock's short and direct explanation Thinking with Joins:
I particularly appreciated the practicality of this model for designing animated transitions. You can also check out the beautiful gallery of examples. Languages with 'unique' programsHas there been any PL research into languages where every semantically distinct program has exactly one representation in the source language? In other words, a language where for any given set of inputs, any change in the source text will create a program that for the same set of input produces a different set of outputs than the original program. Basically taking Python's "there should be one-- and preferably only one --obvious way to do it" philosophy to its logical extreme. I'm interested in how limiting this is on what you can express, since for any two equivalent algorithms only one of them could be written in the language. Is there an established technical term for this I can Google? |
Browse archives
Active forum topics |
Recent comments
9 weeks 6 days ago
9 weeks 6 days ago
10 weeks 8 hours ago
10 weeks 19 hours ago
10 weeks 4 days ago
10 weeks 4 days ago
10 weeks 5 days ago
10 weeks 5 days ago
10 weeks 5 days ago
10 weeks 5 days ago