background preloader

Papers

Facebook Twitter

Fast and Loose Reasoning is Morally Correct. Fast and Loose Reasoning is Morally CorrectNils Anders Danielsson, John Hughes, Patrik Jansson and Jeremy GibbonsConference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 2006). © ACM, 2006. This is a minor revision of the work published in POPL'06, Accompanying technical report. [pdf] Functional programmers often reason about programs as if they were written in a total language, expecting the results to carry over to non-total (partial) languages. We justify such reasoning. Two languages are defined, one total and one partial, with identical syntax. It is proved that if two closed terms have the same semantics in the total language, then they have related semantics in the partial language. Prettt-tty, pretty, pretty good!: The future of programming. What will programming look like 10 or even 20 years from now?

With another new year almost here, now is the time to wax philosophical about the future of our industry. We are on the cusp of a number of major transformations in programming that will make 2011 programming technology, techniques, and ideas seem primitive by comparison. The transformations will occur in several key areas: tooling and infrastructure, languages and type systems, and runtime systems. Before I get started, let me preface this all with the disclaimer that this should be taken with a grain of salt, in the spirit of being provocative, and these are not really predictions per se.

There are lots of reasons why inferior technologies might continue to dominate the industry longer than expected. An overarching theme to all these transformations is the move away from incidental structure and its close cousin incidental complexity. Where we begin But what about intentional programming, you ask? Language runtimes. Scrum-ban. As more people become interested in Lean ideas and their application to knowledge work and project management, it’s helpful to find ways that make it easier to get started or learn a few basic concepts that can lead to deeper insights later.

For those that are curious about kanban in an office context, it’s not unusual to find people who are either currently using Scrum, or have some understanding of Scrum as representative of Agile thinking. One way or another, Scrum users are an important constituent of the Kanban audience. Since Scrum can be described as a statement in the language we use to describe kanban systems, it is also fairly easy to elaborate on that case in order to describe Scrum/Kanban hybrids.

This can be useful for existing Scrum teams who are looking to improve their scale or capability. The idea of using a simple task board with index cards or sticky notes is as old as Agile itself. A kanban is more than an index card Crunchy on the outside, chewy on the inside. Computing Science: Achievements and Challenges (EWD1284)

Computing Science: Achievements and Challenges When, at the close of the 20th Century, I am supposed to talk about Computing Science, I am immediately faced with the question "Which Computing Science? ". In my personal case I can narrow it down to "European CS or American CS? " but with 32 years of European and 26 years of American employment as computer scientist, I cannot eliminate the dilemma. (As an aside, don't add the two numbers I gave you, for there was some overlap.) To summarize my position with respect to this transatlantic difference: I cannot ignore it, but am also allowed to address the issue openly (that is, if not qualified, at least entitled).

The major differences between European and American CS are that American CS is more machine-oriented, less mathematical, more closely linked to application areas, more quantitative and more willing to absorb industrial products in its curriculum. As said, FORTRAN and LISP were the two great achievements of the 50s. When of course. RS-96-37.pdf.