User loginNavigation |
OOPThe Left Hand of EqualsThe Left Hand of Equals, by James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Mark S. Miller:
This covers a lot of ground, not only historical, but conceptual, like the meaning of equality and objects. For instance, they consider Ralph Johnson on what object oriented programming means:
And constrast with William Cook's autognosis/procedural-abstraction view, which we've discussed here before. The paper's goal then becomes clear: "What can we do to provide an equality operator for a pure, autognostic object-oriented language?" They answer this question in the context of the Grace programming language. As you might expect from some of the authors, security and trust are important considerations. Proving Programs Correct Using Plain Old Java TypesProving Programs Correct Using Plain Old Java Types, by Radha Jagadeesan, Alan Jeffrey, Corin Pitcher, James Riely:
Not a new paper, but it provides a lightweight verification technique for some program properties that you can use right now, without waiting for integrated theorem provers or SMT solvers. Properties that require only monotone typestates can be verified, ie. those that operations can only move the typestate "forwards". In order to achieve this, they require programmers to follow a few simple rules to avoid Java's pervasive nulls. These are roughly: don't assign null explicitly, be sure to initialize all fields when constructing objects. Automating Ad hoc Data Representation TransformationsAutomating Ad hoc Data Representation Transformations by Vlad Ureche, Aggelos Biboudis, Yannis Smaragdakis, and Martin Odersky:
This is a realization of an idea that has been briefly discussed here on LtU a few times, whereby a program is written using high-level representations, and the user has the option to provide a lowering to a more efficient representation after the fact. This contrasts with the typical approach of providing efficient primitives, like primitive unboxed values, and leaving it to the programmer to compose them efficiently up front. By naasking at 2016-09-22 18:29 | Functional | General | Object-Functional | OOP | Software Engineering | 3 comments | other blogs | 47789 reads
Xavier Leroy will receive the Royal Society's 2016 Milner AwardThe Royal Society will award Xavier Leroy the Milner Award 2016
Xavier's replied:
By Ohad Kammar at 2015-09-18 14:48 | Functional | General | Implementation | Object-Functional | OOP | 2 comments | other blogs | 23466 reads
Don Syme receives a medal for F#Don Syme receives the Royal Academy of Engineering's Silver Medal for his work on F#. The citation reads:
Congratulations! By Ohad Kammar at 2015-07-03 19:16 | Cross language runtimes | Fun | Functional | General | Implementation | Object-Functional | OOP | Paradigms | Software Engineering | 5 comments | other blogs | 19111 reads
Apple Introduces SwiftApple today announced a new programming language for their next version of Mac OS X and iOS called Swift. The Language Guide has more details about the potpourri of language features. By bashyal at 2014-06-02 19:53 | Functional | General | OOP | 112 comments | other blogs | 73083 reads
Multiple Dispatch as Dispatch on TuplesMultiple Dispatch as Dispatch on Tuples, by Gary T. Leavens and Todd D. Millstein:
Multimethods and multiple dispatch has been discussed numerous times here on LtU. While the theory has been fully fleshed out to the point of supporting full-fledged type systems for multiple dispatch, there has always remained a conceptual disconnect between multimethods and the OO model, namely that methods are supposed to be messages sends to objects with privileged access to that object's internal state. Multimethods would seem to violate encapsulation inherent to objects, and don't fit with the conceptual messaging model. This paper goes some way to solving that disconnect, as multiple dispatch is simply single dispatch on a distinct, primitive class type which is predicated on N other class types and thus supporting N-ary dispatch. This multiple dispatch support can also be retrofitted to an existing single-dispatch languages without violating its existing dispatch model. Pure Subtype SystemsPure Subtype Systems, by DeLesley S. Hutchins:
A thought-provoking take on type theory using subtyping as the foundation for all relations. He collapses the type hierarchy and unifies types and terms via the subtyping relation. This also has the side-effect of combining type checking and partial evaluation. Functions can accept "types" and can also return "types". Of course, it's not all sunshine and roses. As the abstract explains, the metatheory is quite complicated and soundness is still an open question. Not too surprising considering type checking Type:Type is undecidable. Hutchins' thesis is also available for a more thorough treatment. This work is all in pursuit of Hitchens' goal of feature-oriented programming. By naasking at 2013-11-08 23:53 | Lambda Calculus | Object-Functional | OOP | Type Theory | 39 comments | other blogs | 25305 reads
Concurrent RevisionsConcurrent Revisions is a Microsoft Research project doing interesting work in making concurrent programming scalable and easier to reason about. These papers work have been mentioned a number of times here on LtU, but none of them seem to have been officially posted as stories. Concurrent Revisions are a distributed version control-like abstraction [1] for concurrently mutable state that requires clients to specify merge functions that make fork-join deterministic, and so make concurrent programs inherently composable. The library provide default merge behaviour for various familiar objects like numbers and lists, and it seems somewhat straightforward to provide a merge function for many other object types. They've also extended the work to seamlessly integrate incremental and parallel computation [2] in a fairly intuitive fashion, in my opinion. Their latest work [3] extends these concurrent revisions to distributed scenarios with disconnected operations, which operate much like distributed version control works with source code, with guarantees of eventual consistency. All in all, a very promising approach, and deserving of wider coverage. [1] Sebastian Burckhardt and Daan Leijen, Semantics of Concurrent Revisions, in European Symposium on Programming (ESOP'11), Springer Verlag, Saarbrucken, Germany, March 2011 By naasking at 2013-03-18 13:29 | Implementation | OOP | Parallel/Distributed | 13 comments | other blogs | 22176 reads
Feature-Oriented Programming with Object AlgebrasFeature-Oriented Programming with Object Algebras, by Bruno C.d.S. Oliveira, Tijs van der Storm, Alex Loh, William R. Cook:
A follow-up to Object Algebras, this new paper addresses a few of the limitations described in that LtU thread by adding type constructor polymorphism to increase their safety. The paper describes an implementation in Scala, which is the only widely available statically typed OOP language with a sufficiently powerful type system needed to support FOP. This new work also describes some composition mechanisms for object algebras in the context of more expressive languages. By naasking at 2013-03-16 14:53 | Implementation | OOP | login or register to post comments | other blogs | 14196 reads
|
Browse archives
Active forum topics |
Recent comments
27 weeks 1 day ago
27 weeks 1 day ago
27 weeks 1 day ago
49 weeks 3 days ago
1 year 1 week ago
1 year 3 weeks ago
1 year 3 weeks ago
1 year 5 weeks ago
1 year 10 weeks ago
1 year 10 weeks ago