<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - Programming Languages Weblog</title>
 <link>http://lambda-the-ultimate.org</link>
 <description>Programming languages news, articles and discussion</description>
 <language>en</language>
<item>
 <title>The Algebra of Data, and the Calculus of Mutation</title>
 <link>http://lambda-the-ultimate.org/node/4443</link>
 <description>&lt;p &gt;Kalani Thielen&#039;s &lt;a href=&quot;http://blog.lab49.com/archives/3011&quot;&gt;The Algebra of Data, and the Calculus of Mutation&lt;/a&gt; is a &lt;em &gt;very&lt;/em&gt; good explanation of ADTs, and also scratches the surfaces of Zippers:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;With the spreading popularity of languages like F# and Haskell, many people are encountering the concept of an algebraic data type for the first time.  When that term is produced without explanation, it almost invariably becomes a source of confusion.  In what sense are data types algebraic?  Is there a one-to-one correspondence between the structures of high-school algebra and the data types of Haskell?  Could I create a polynomial data type?  Do I have to remember the quadratic formula?  Are the term-transformations of (say) differential calculus meaningful in the context of algebraic data types?  Isn’t this all just a bunch of general abstract nonsense?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;(hat tip to &lt;a href=&quot;https://twitter.com/dyokomizo&quot;&gt;Daniel Yokomizo&lt;/a&gt;, who used to be an LtU member...)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Fri, 03 Feb 2012 10:53:09 -0500</pubDate>
</item>
<item>
 <title>Vellvm: Formalizing the LLVM Intermediate Representation for Verified Program Transformations</title>
 <link>http://lambda-the-ultimate.org/node/4440</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.cis.upenn.edu/~jianzhou/Vellvm/&quot;&gt;Vellvm: Formalizing the LLVM Intermediate Representation for Verified Program Transformations&lt;/a&gt; by Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
This paper presents Vellvm (&lt;em &gt;verified&lt;/em&gt; &lt;a href=&quot;http://llvm.org/&quot;&gt;LLVM&lt;/a&gt;), a framework for reasoning about programs expressed in &lt;a href=&quot;http://llvm.org/docs/LangRef.html&quot;&gt;LLVM&#039;s intermediate representation&lt;/a&gt; and transformations that operate on it. Vellvm provides a mechanized formal semantics of LLVM&#039;s intermediate representation, its type system, and properties of its &lt;a href=&quot;http://en.wikipedia.org/wiki/Static_single_assignment_form&quot;&gt;SSA&lt;/a&gt; form. The framework is built using the &lt;a href=&quot;http://coq.inria.fr/&quot;&gt;Coq&lt;/a&gt; interactive theorem prover. It includes multiple operational semantics and proves relations among them to facilitate different reasoning styles and proof techniques.&lt;/p&gt;
&lt;p &gt;To validate Vellvm&#039;s design, we extract an interpreter from the Coq formal semantics that can execute programs from LLVM &lt;a href=&quot;http://llvm.org/docs/TestingGuide.html#quicktestsuite&quot;&gt;test suite&lt;/a&gt; and thus be compared against LLVM reference implementations. To demonstrate Vellvm&#039;s practicality, we formalize and verify a &lt;a href=&quot;http://www.cis.upenn.edu/acg/softbound/&quot;&gt;previously proposed transformation&lt;/a&gt; that hardens C programs against spatial memory safety violations. Vellvm&#039;s tools allow us to &lt;a href=&quot;http://coq.inria.fr/refman/Reference-Manual027.html&quot;&gt;extract&lt;/a&gt; a new, verified implementation of the transformation pass that plugs into the real LLVM infrastructure; its performance is competitive with the non-verified, ad-hoc original.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This obviously represents huge progress in marrying the theoretical benefits of tools like Coq with the practical benefits of tools like LLVM. We can only hope that this spurs further development in practical certified software development.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sat, 28 Jan 2012 10:57:08 -0500</pubDate>
</item>
<item>
 <title>Beyond pure Prolog: Power and danger</title>
 <link>http://lambda-the-ultimate.org/node/4434</link>
 <description>&lt;p &gt;One of the sections of Oleg Kiselyov&#039;s &lt;i &gt;Prolog and Logic Programming&lt;/i&gt; page, on &lt;a href=&quot;http://okmij.org/ftp/Prolog/index.html#impure&quot;&gt;Beyond pure Prolog: power and danger&lt;/a&gt;, points out (i) term introspection (in the guise of the &lt;code &gt;var/1&lt;/code&gt; predicate) can be derived from three of Prolog&#039;s imperative features, two of which are quite mild-looking, and (ii) this introspection potentially makes Prolog code hard to understand.&lt;/p&gt;
&lt;p &gt;Oleg pointed this note in response to &lt;a href=&quot;http://lambda-the-ultimate.org/node/112#comment-68897&quot;&gt;my defence of cut&lt;/a&gt;; it is short, sweet, and well-argued.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/13">Logic/Declarative</category>
 <pubDate>Mon, 23 Jan 2012 05:54:29 -0500</pubDate>
</item>
<item>
 <title>Deca, an LtU-friendly bare metal systems programming language</title>
 <link>http://lambda-the-ultimate.org/deca</link>
 <description>&lt;p &gt;The &lt;a href=&quot;http://code.google.com/p/decac/&quot;&gt;Deca programming language&lt;/a&gt; is &quot;&lt;i &gt;a language designed to provide the advanced features of sophisticated, high-level programming languages while still programming as close as possible to the bare metal. It brings in the functional, object-oriented, and generic programming paradigms without requiring a garbage collector or a threading system, so programmers really only pay in performance for the features they use.&lt;/i&gt;&quot;  The latter link provides a list of features that Deca does, will, and won&#039;t provide.  Features provided include type inference, universally- and existentially- quantified types, and &quot;a strong region-and-effect system that prohibits unsafe escaping pointers and double-free errors&quot;.&lt;/p&gt;
&lt;p &gt;The Deca language and ideas behind it are documented in a thesis, &lt;a href=&quot;http://decac.googlecode.com/files/Deca%20Thesis.pdf&quot;&gt;The design and implementation of a modern systems programming language&lt;/a&gt; (PDF):&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
Low-level systems programming has remained one of the most consistently difficult tasks in software engineering, since systems programmers must routinely deal with details that programming-language and systems researchers have preferred to abstract away. At least partially, the difficulty arises from not applying the state of the art in programming-languages research to systems programming. I therefore describe the design and implementation of Deca, a systems language based on modern PL principles. Deca makes use of decades in programming-languages research, particularly drawing from the state of the art in functional programming, type systems, extensible data-types and subroutines, modularity, and systems programming-languages research. I describe Deca&#039;s feature-set, examine the relevant literature, explain design decisions, and give some of the implementation details for Deca language features. I have been writing a compiler for Deca to translate it into machine code, and I describe the overall architecture of this compiler and some of its details.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;The source code for the Deca compiler, decac, is &lt;a href=&quot;http://code.google.com/p/decac/source/checkout&quot;&gt;available here&lt;/a&gt;.  The compiler is implemented in Scala and generates LLVM bytecode.  (The author points out in the comments below that this implementation is a work in progress.)&lt;/p&gt;
&lt;p &gt;The author of Deca is LtU member Eli Gottlieb, who back in 2008 posted in the forum asking for feedback on his language: &lt;a href=&quot;http://lambda-the-ultimate.org/node/2898&quot;&gt;Practical Bits of Making a Compiler for a New Language&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;There&#039;s some more discussion of Deca over at &lt;a href=&quot;http://news.ycombinator.com/item?id=3413936&quot;&gt;Hacker News&lt;/a&gt;.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/12">Object-Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sun, 01 Jan 2012 21:40:53 -0500</pubDate>
</item>
<item>
 <title>Seven Myths of Formal Methods Revisited</title>
 <link>http://lambda-the-ultimate.org/node/4425</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.24.5280&quot;&gt;Software Engineering with Formal Methods: The Development of a Storm Surge Barrier Control System - Seven Myths of Formal Methods Revisited (2001)&lt;/a&gt;, by Jan Tretmans, Klaas Wijbrans, Michel Chaudron:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Bos is the software system which controls and operates the storm surge barrier in the Nieuwe Waterweg near Rotterdam. It is a complex, safety-critical system of average size, which was developed by CMG Den Haag B.V., commissioned by Rijkswaterstaat (RWS) – the Dutch Ministry of Transport, Public Works and Water Management. It was completed in October 1998 on time and within budget.&lt;/p&gt;
&lt;p &gt;CMG used formal methods in the development of the Bos software. This paper discusses the experiences obtained from their use. Some people claim that the use of formal methods helps in developing correct and reliable software, others claim that formal methods are useless and unworkable. Some of these claims have almost become myths. A number of these myths are described and discussed in a famous article: Seven Myths of Formal Methods [Hal90]. The experiences obtained from using formal methods for the development of Bos will be discussed on the basis of this article. We will discuss to what extent these myths are true for the Bos project.&lt;/p&gt;
&lt;p &gt;The data for this survey were collected by means of interviews with software engineers working on the Bos project. These include the project manager, designers, implementers and testers, people who participated from the beginning in 1995 until the end in 1998 as well as engineers who only participated in the implementation phase, and engineers with and without previous, large-scale software engineering experience.&lt;/p&gt;
&lt;p &gt;This paper concentrates on the experiences of the software engineers with formal methods. These experiences, placed in the context of the seven myths, are described in section 3. This paper does not discuss technical details about the particular formal methods used or the way they were used; see [Kar97, Kar98] for these aspects. Moreover, formal methods were only one technique used in the development of Bos. The overall engineering approach and the way diﬀerent methods and techniques were combined to assure the required safetycritical quality, are described [WBG98, WB98]. Testing in Bos  is described in more detail in [GWT98], while [CTW99] will give a more systematic analysis of the results of the interviews&lt;br &gt;
with the developers.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Discussion of formal methods and verification has come up &lt;a href=&quot;http://lambda-the-ultimate.org/node/2783&quot;&gt;a few times here on LtU&lt;/a&gt;. In line with the recent discussions on the need for more empirical data in our field, this was an interesting case study on the use of formal methods. The seven myths of formal methods are reviewed in light of a real project:&lt;/p&gt;
&lt;ol &gt;
&lt;li &gt;Myth 1: Formal methods can guarantee that software is perfect&lt;/li&gt;
&lt;li &gt;Myth 2: Formal methods are all about program proving&lt;/li&gt;
&lt;li &gt;Myth 3: Formal methods are only useful for safety-critical system&lt;/li&gt;
&lt;li &gt;Myth 4: Formal methods require highly trained mathematicians&lt;/li&gt;
&lt;li &gt;Myth 5: Formal methods increase the cost of developmen&lt;/li&gt;
&lt;li &gt;Myth 6: Formal methods are unacceptable to users&lt;/li&gt;
&lt;li &gt;Myth 7: Formal methods are not used on real, large-scale software&lt;/li&gt;
&lt;/ol&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Tue, 27 Dec 2011 11:19:15 -0500</pubDate>
</item>
<item>
 <title>Dependently Typed Programming based on Automated Theorem Proving</title>
 <link>http://lambda-the-ultimate.org/node/4423</link>
 <description>&lt;p &gt;&lt;b &gt;&lt;a href=&quot;http://arxiv.org/abs/1112.3833&quot;&gt;Dependently Typed Programming based on Automated Theorem Proving&lt;/a&gt;&lt;/b&gt;, by Alasdair Armstrong, Simon Foster, and Georg Struth.  [Link to preprint on ArXiv, a.k.a. this has not yet been refereed, use at your own risk].&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Mella is a minimalistic dependently typed programming language and interactive theorem prover implemented in Haskell. Its main purpose is to investigate the effective integration of automated theorem provers in a pure and simple setting. Such integrations are essential for supporting program development in dependently typed languages. We integrate the equational theorem prover Waldmeister and test it on more than 800 proof goals from the TPTP library. In contrast to previous approaches, the reconstruction of Waldmeister proofs within Mella is quite robust and does not generate a significant overhead to proof search. Mella thus yields a template for integrating more expressive theorem provers in more sophisticated languages. &lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Coq and Agda are demonstrating the dependently-typed programming is feasible and beneficial -- but still quite painful in practice.  The point of computers is that they can automate a lot of drudgery.  And a lot of &lt;i &gt;proofs&lt;/i&gt; ought to be considered drudgery as well.  But, in practice, this is a huge leap.  The authors present an interesting experiment in a promising direction.&lt;/p&gt;
&lt;p &gt;The LtU angle here is that current (automated) proof assistants generate proofs which, usually, have a huge impedance mismatch with the kinds of evidence that a type-checker for a dependently-typed language needs to be convinced of the validity of some user code.  So there is a non-trivial engineering issue to be solved regarding the implementation of a &lt;i &gt;pleasant&lt;/i&gt; environment for dependently-typed programming.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/8">Implementation</category>
 <pubDate>Thu, 22 Dec 2011 09:18:59 -0500</pubDate>
</item>
<item>
 <title>Cambridge Course on &quot;Usability of Programming Languages&quot;</title>
 <link>http://lambda-the-ultimate.org/node/4422</link>
 <description>&lt;p &gt;From the syllabus of the Cambridge course on &lt;a href=&quot;http://www.cl.cam.ac.uk/teaching/1011/R201/&quot;&gt;Usability of Programming Languages&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;Compiler construction is one of the basic skills of all computer scientists, and thousands of new programming, scripting and customisation languages are created every year. Yet very few of these succeed in the market, or are well regarded by their users. This course addresses the research questions underlying the success of new programmable tools. A programming language is essentially a means of communicating between humans and computers. Traditional computer science research has studied the machine end of the communications link at great length, but there is a shortage of knowledge and research methods for understanding the human end of the link. This course provides practical research skills necessary to make advances in this essential field. The skills acquired will also be valuable for students intending to pursue research in advanced HCI, or designing evaluation studies as a part of their MPhil research project.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;Is this kind of HCI based research going to lead to better languages?  Or more regurgitations of languages people are already comfortable with?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Mon, 19 Dec 2011 12:42:53 -0500</pubDate>
</item>
<item>
 <title>CRA-W/CDC and SIGPLAN Programming Languages Mentoring Workshop</title>
 <link>http://lambda-the-ultimate.org/node/4412</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://www.seas.upenn.edu/~sweirich/plmw12/&quot;&gt;CRA-W/CDC and SIGPLAN Programming Languages Mentoring Workshop&lt;/a&gt;,  Philadelphia, PA (co-located with POPL 2012) Tuesday January 24, 2012&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
We are pleased to invite students interested in programming languages research to the first PL mentoring workshop. The goal of this workshop is to introduce senior undergraduate and early graduate students to research topics in programming language theory as well as provide career mentoring advice to help them get through graduate school, land a great job, and succeed. We have recruited leaders from the programming language community to provide overviews of current research topics, and have organized panels of speakers to give students valuable advice about how to thrive in graduate school, search for a job, and cultivate habits and skills that will help them in research careers.&lt;/p&gt;
&lt;p &gt;This workshop is part of the activities surrounding POPL, the Symposium on Principles of Programming Languages, and takes place the day before the main conference. One goal of the workshop is to make the POPL conference more accessible to newcomers and we hope that participants will stay through the entire conference.&lt;/p&gt;
&lt;p &gt;Through the generous donation of our sponsors, we are able to provide travel scholarships to fund student participation. These travel scholarships will cover reasonable travel expenses (airfare, hotel and registration fees) for attendance at both the workshop and the POPL conference. Anyone may apply for a travel scholarship, but first priority will be given to women and under-represented minority applicants.&lt;/p&gt;
&lt;p &gt;The workshop registration is open to all. Students with alternative sources of funding for their travel and registration fees are welcome.&lt;/p&gt;
&lt;p &gt;APPLICATION FOR TRAVEL SUPPORT:&lt;br &gt;
The travel funding application can be accessed from the workshop web site. The deadline for full consideration of funding is December 2, 2011. Selected participants will be notified starting December 9th and will need to register for the workshop by December 24th.&lt;/p&gt;
&lt;p &gt;ORGANIZERS:&lt;br &gt;
Stephanie Weirich, Kathleen Fisher and Ron Garcia&lt;/p&gt;
&lt;p &gt;SPONSORS:&lt;br &gt;
The Computing Research Association&#039;s Committee on the Status of Women (CRA-W),  the Coalition to Diversify Computing (CDC), and the ACM Special Interest Group on Programming Languages (SIGPLAN).
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;We don&#039;t usually post conference or workshop announcements on the front page, but this seemed sufficiently new and worthy to me. Please note that the deadline for the application for travel support is only two days away!&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/18">Teaching &amp; Learning</category>
 <pubDate>Wed, 30 Nov 2011 15:45:30 -0500</pubDate>
</item>
<item>
 <title>LTL types FRP</title>
 <link>http://lambda-the-ultimate.org/node/4402</link>
 <description>Alan Jeffrey (to appear 2012) &lt;a href=&quot;http://ect.bell-labs.com/who/ajeffrey/papers/plpv12.pdf&quot;&gt;LTL types FRP: Linear-time Temporal Logic Propositions as Types, Proofs as Functional Reactive Programs&lt;/a&gt;.  To be presented at next year&#039;s &lt;i &gt;Programming Languages meets Program Verification&lt;/i&gt;, &lt;a href=&quot;http://research.microsoft.com/en-us/um/people/nswamy/plpv12/&quot;&gt;(PLPV 2012)&lt;/a&gt;.

&lt;blockquote &gt;
Functional Reactive Programming (FRP) is a form of reactive programming whose model is pure functions over signals. FRP is often expressed in terms of arrows with loops, which is the type class
for a Freyd category (that is a premonoidal category with a cartesian centre) equipped with a premonoidal trace. This type system
sufﬁces to deﬁne the dataﬂow structure of a reactive program, but
does not express its temporal properties. In this paper, we show
that Linear-time Temporal Logic (LTL) is a natural extension of
the type system for FRP, which constrains the temporal behaviour
of reactive programs. We show that a constructive LTL can be deﬁned in a dependently typed functional language, and that reactive
programs form proofs of constructive LTL properties. In particular,
implication in LTL gives rise to stateless functions on streams, and
the “constrains” modality gives rise to causal functions. We show
that reactive programs form a partially traced monoidal category,
and hence can be given as a form of arrows with loops, where the
type system enforces that only decoupled functions can be looped.
&lt;/blockquote&gt;

Via &lt;a href=&quot;https://plus.google.com/u/0/111927747393309805563/posts/Vde6MSMwSSb&quot;&gt;Alan&#039;s G+ feed&lt;/a&gt;.</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Mon, 14 Nov 2011 05:48:12 -0500</pubDate>
</item>
<item>
 <title>Extensible Programming with First-Class Cases</title>
 <link>http://lambda-the-ultimate.org/node/4394</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://ttic.uchicago.edu/~wchae/files/icfp06.pdf&quot;&gt;Extensible Programming with First-Class Cases&lt;/a&gt;, by Matthias Blume, Umut A. Acar, and Wonseok Chae:&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;We present language mechanisms for polymorphic, extensible records and their exact dual, polymorphic sums with extensible first-class cases. These features make it possible to easily extend existing code with new cases. In fact, such extensions do not require any changes to code that adheres to a particular programming style. Using that style, individual extensions can be written independently and later be composed to form larger components. These language mechanisms provide a solution to the expression problem.&lt;/p&gt;
&lt;p &gt;We study the proposed mechanisms in the context of an implicitly typed, purely functional language PolyR. We give a type system for the language and provide rules for a 2-phase transformation: first into an explicitly typed λ-calculus with record polymorphism, and finally to efficient index-passing code. The first phase eliminates sums and cases by taking advantage of the duality with records.&lt;/p&gt;
&lt;p &gt;We implement a version of PolyR extended with imperative features and pattern matching—we call this language MLPolyR. Programs in MLPolyR require no type annotations—the implementation employs a reconstruction algorithm to infer all types. The compiler generates machine code (currently for PowerPC) and optimizes the representation of sums by eliminating closures generated by the dual construction.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;This is an elegant solution to the expression problem for languages with pattern matching. This paper &lt;a href=&quot;http://lambda-the-ultimate.org/node/3338&quot;&gt;was posted twice in LtU comments&lt;/a&gt;, but it definitely deserves its own story. Previous solutions to the exression problem are rather more involved, like &lt;a href=&quot;http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.8079&quot;&gt;Garrigue&#039;s use of recursion and polymorphic variants&lt;/a&gt;, because they lack support for extensible records which makes this solution so elegant.&lt;/p&gt;
&lt;p &gt;Extensible records and first-class cases unify object-oriented and functional paradigms on a deeper level, since they enable first-class messages to be directly encoded. Add a sensible system for dynamics, and I argue you have most of the power people claim of dynamic languages without sacrificing the safety of static typing.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/21">Type Theory</category>
 <pubDate>Sun, 30 Oct 2011 17:41:17 -0400</pubDate>
</item>
<item>
 <title>Foundations of Inference</title>
 <link>http://lambda-the-ultimate.org/node/4393</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://arxiv.org/abs/1008.4831&quot;&gt;Foundations of Inference&lt;/a&gt;, Kevin H. Knuth, John Skilling, arXiv:1008.4831v1 [math.PR]&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
We present a foundation for inference that unites and significantly extends the approaches of Kolmogorov and Cox. Our approach is based on quantifying finite lattices of logical statements in a way that satisfies general lattice symmetries. With other applications in mind, our derivations assume minimal symmetries, relying on neither complementarity nor continuity or differentiability. Each relevant symmetry corresponds to an axiom of quantification, and these axioms are used to derive a unique set of rules governing quantification of the lattice. These rules form the familiar probability calculus. We also derive a unique quantification of divergence and information. Taken together these results form a simple and clear foundation for the quantification of inference.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;For those of us who find ourselves compelled by the view of probability as a generalization of logic that is isomorphic to (algorithmic, as if there were any other kind) information theory, here is some recent i-dotting and t-crossing. The connection to Curry-Howard or, if you prefer, Krivine&#039;s classical realizability is something I hope to explore in the near future.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/19">Theory</category>
 <pubDate>Sun, 30 Oct 2011 13:52:33 -0400</pubDate>
</item>
<item>
 <title>The Experimental Effectiveness of Mathematical Proof</title>
 <link>http://lambda-the-ultimate.org/node/4392</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://perso.ens-lyon.fr/alexandre.miquel/publis/effectiveness.pdf&quot;&gt;The Experimental Effectiveness of Mathematical Proof&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;
The aim of this paper is twofold. First, it is an attempt to give an answer to the famous essay of Eugene Wigner about the unreasonable effectiveness of mathematics in the natural sciences [25]. We will argue that mathematics are not only reasonably effective, but that they are also objectively effective in a sense that can be given a precise meaning. For that—and this is the second aim of this paper—we shall reconsider some aspects of Popper’s epistemology [23] in the light of recent advances of proof theory [8, 20], in order to clarify the interaction between pure mathematical reasoning (in the sense of a formal system) and the use of empirical hypotheses (in the sense of the natural sciences).&lt;/p&gt;
&lt;p &gt;The technical contribution of this paper is the proof-theoretic analysis of the problem (already evoked in [23]) of the experimental modus tollens, that deals with the combination of a formal proof of the implication U ⇒ V with an experimental falsification of V to get an experimental falsification of U in the case where the formulæ U and V express empirical theories in a sense close to Popper’s. We propose a practical solution to this problem based on Krivine’s theory of classical realizability [20], and describe a simple procedure to extract from a formal proof of U ⇒ V (formalized in classical second-order arithmetic) and a falsifying instance of V a computer program that performs a finite sequence of tests on the empirical theory U until it finds (in finite time) a falsifying instance of U.
&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;I thought I had already posted this, but apparently not.&lt;/p&gt;
&lt;p &gt;Consider this paper the main gauntlet thrown down to those who insist that mathematical logic, the Curry-Howard Isomorphism, etc. might be fine for &quot;algorithmic code&quot; (as if there were any other kind) but is somehow inapplicable the moment a system interacts with the &quot;real&quot; or &quot;outside&quot; world (as if software weren&#039;t real).&lt;/p&gt;
&lt;p &gt;&lt;b &gt;Update:&lt;/b&gt; the author is Alexandre Miquel, and the citation is &quot;Chapitre du livre Anachronismes logiques, à paraître dans la collection Logique, Langage, Sciences, Philosophie, aux Publications de la Sorbonne. Éd.: Myriam Quatrini et Samuel Tronçon, 2010.&quot;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/11">Functional</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/20">Lambda Calculus</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/13">Logic/Declarative</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/29">Semantics</category>
 <pubDate>Sun, 30 Oct 2011 12:05:45 -0400</pubDate>
</item>
<item>
 <title>Microsoft Roslyn Project whitepaper</title>
 <link>http://lambda-the-ultimate.org/node/4390</link>
 <description>&lt;p &gt;Microsoft has recently detailed their &quot;Compiler as a Service&quot; initiative in a whitepaper.  The whitepaper calls the project &lt;a href=&quot;http://www.microsoft.com/download/en/details.aspx?id=27744&quot;&gt;Roslyn&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;Related, IBM sponsors the Eclipse IMP project for its X10 language (and the X10DT).  IMP is also used for Eelco Visser&#039;s Spoofax IDE and WebDSL IDE.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/17">Software Engineering</category>
 <pubDate>Thu, 27 Oct 2011 13:00:29 -0400</pubDate>
</item>
<item>
 <title>John McCarthy has passed</title>
 <link>http://lambda-the-ultimate.org/node/4387</link>
 <description>&lt;p &gt;It is being reported that John McCarthy has passed.   Here is an example article which I list only for confirmation of something I heard from a friend.&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://news.cnet.com/8301-1001_3-20125026-92/john-mccarthy-creator-of-lisp-programming-language-dies/&quot;&gt;John McCarthy, the creator of the Lisp programming language and a pioneer in artificial intelligence, has died. He was 84.&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;I hope that LtU&#039;ers will comment appropriately.&lt;/p&gt;
&lt;p &gt;My personal and very indirect remembrance is quite simple:  In the late 1980s, as a high school student fascinated by computers but with only limited access to any and with even more limited access to education about them -- I went trolling what bookstores I could find that might have something to offer.  I was not rich but I could afford a few bucks to take a commuter train 40 miles to Boston.   Once in Boston, I learned how to navigate to Cambridge, near Harvard.   Once there I found the Harvard Coop.   Once at the Coop I learned where to find textbooks.   And there, very early on in my experience with computing, I found a reprint of the Lisp 1.5 manual.   I recognized it as &quot;dated&quot; (even then) very quickly but I also was blown away by the presentation of (more or less) a meta-circular eval.   The handling of m- vs. s-expressions also demystified for my then quite naive, unworldly self a lot about the nonthreatening, practical, and banal nature of many notational choices.   I don&#039;t know...  I&#039;m certainly not the right person to sing the man&#039;s praises other than to say that his work touched my life in a big positive way that is hard to sum up.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 24 Oct 2011 22:13:52 -0400</pubDate>
</item>
<item>
 <title>Dennis Ritchie passed away</title>
 <link>http://lambda-the-ultimate.org/node/4378</link>
 <description>&lt;p &gt;I have just learned that Dennis Ritchie (1941-2011) has passed away. His contributions changed the computing world. As everyone here knows, &lt;a href=&quot;http://cm.bell-labs.com/cm/cs/who/dmr/&quot;&gt;dmr&lt;/a&gt; developed C, and with Brian Kernighan co-authored K&amp;amp;R, a book that served many of us in school and in our professional lives and remains a classic text in the field, if only for its style and elegance. He was also one of the central figures behind UNIX. Major programming languages, notably C++ and Java, are descendants of Ritchie&#039;s work; many other programming languages in use today show traces of his influences.&lt;p &gt;
&lt;strong &gt;Update&lt;/strong&gt;&lt;p &gt;
Bjarne Stroustrup puts the C revolution in perspective: &lt;a href=&quot;http://herbsutter.com/2011/10/12/dennis-ritchie/&quot;&gt;They said it couldn’t be done, and he did it.&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/6">General</category>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/7">History</category>
 <pubDate>Thu, 13 Oct 2011 02:45:03 -0400</pubDate>
</item>
</channel>
</rss>

