User loginNavigation 
PuzzleScriptI haven't seen this discussed here yet: http://www.puzzlescript.net/ It is an HTML5based puzzle game engine that uses a simple language for patterns and substitutions to describe game rules. For example (taken from their introduction), the basic blockpushing logic of a Sokoban game can be given as:
This line says that when the engine sees the pattern to the left of Rules are matched and applied iteratively at each step (i.e., when the player acts), until there are no more matches, and then movement takes place. There are mechanisms for influencing the order in which rules are run, and for forcing subsets of the rules to be iterated. By default, rules apply to both rows and columns, but horizontal or verticalonly rules can be created. It is an interesting example of a very narrowlyfocused DSL, based on a (relatively) uncommon model of computation. It's also very fun to play with! Backpack: Retrofitting Haskell with a Module System, at last
By gasche at 20140105 16:59  Type Theory  login or register to post comments  other blogs  7273 reads
A glimpse into a new general purpose programming language under development at MicrosoftMicrosoft's Joe Duffy and team have been (quietly) working on a new programming language, based on C# (for productivity, safety), but leveraging C++ features (for performance). I think it's fair to say  and agree with Joe  that a nirvana for a modern general purpose language would be one that satisfies high productivity (ease of use, intuitive, high level) AND guaranteed (type)safety AND high execution performance. As Joe outlines in his blog post (not video!): At a high level, I classify the language features into six primary categories: 1) Lifetime understanding. C++ has RAII, deterministic destruction, and efficient allocation of objects. C# and Java both coax developers into relying too heavily on the GC heap, and offers only “loose” support for deterministic destruction via IDisposable. Part of what my team does is regularly convert C# programs to this new language, and it’s not uncommon for us to encounter 3050% time spent in GC. For servers, this kills throughput; for clients, it degrades the experience, by injecting latency into the interaction. We’ve stolen a page from C++ — in areas like rvalue references, move semantics, destruction, references / borrowing — and yet retained the necessary elements of safety, and merged them with ideas from functional languages. This allows us to aggressively stack allocate objects, deterministically destruct, and more. What do you think? Print release of a textbook on the Coq proof assistantFor a few years now, I've been working on a textbook introducing the Coq proof assistant. It's been available freely online, and I'd like to announce now the availability of a print version from MIT Press. The site I've linked to includes links to order the book online. Quick context on why LtUers might be interested in Coq: it supports machine checking of mathematical proofs, including in program verification and PL metatheory, some of the most popular applications of proof assistant technology. Quick context on what distinguishes this book from other Coq resources: it focuses on the engineering techniques to develop large formal developments effectively. It turns out that there are some reusable lessons on how to write formal proofs so that they tend to continue to work even when theorem statements change over the courses of projects. I'm grateful to MIT Press for agreeing to this experiment where I may continue distributing free versions of the book online. Call for Participation: Programming Languages Mentoring WorkshopAlan Schmitt just posted an invitation to participate in this event which will take place at POPL. I think anyone who can attend should. By Ehud Lamm at 20131122 09:33  General  login or register to post comments  other blogs  16023 reads
R7RSsmall draft ratified by Steering CommitteeR7RSsmall draft was ratified by Steering Committee a few days ago at the Scheme 2013 workshop. The announcement is here. The final draft is here (PDF). The origin of zerobased array indexingAn amusing historical analysis of the origin of zero based array indexing (hint: C wasn't the first). There's a twist to the story which I won't reveal, so as not to spoil the story for you. All in all, it's a nice anecdote, but it seems to me that many of the objections raised in the comments are valid. MOOC: Paradigms of Computer ProgrammingThe Université catholique de Louvain has joined the edX consortium this year, and as part of edX Peter Van Roy is preparing a MOOC (Massive Open Online Course) called Paradigms of Computer Programming starting next February. As you'd expect the course uses the CTM book and is based on the course Peter has been teaching, it will thus present a multiparadigm approach to programming and include nontraditional computational models such as the deterministic dataflow model for concurrent programming. I wonder who will end up signing up for this course. I think the option of auditing might appeal to folks who found CTM interesting but are way beyond the category of beginning programmers for whom the course is officially designed. Python and Scientific ComputingThis interesting blog post argues that in recent years Python has gained libraries making it the choice language for scientific computing (over MATLAB and R primarily). I find the details discussed in the post interesting. Two small points that occur to me are that in several domains Mathematica is still the tool of choice. From what I could see nothing free, let alone open source, is even in the same ballpark in these cases. Second, I find it interesting that several of the people commenting mentioned IPython. It seems to be gaining ground as the primary environment many people use. Pure Subtype SystemsPure Subtype Systems, by DeLesley S. Hutchins:
A thoughtprovoking 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 sideeffect 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 featureoriented programming. By naasking at 20131108 23:53  Lambda Calculus  ObjectFunctional  OOP  Type Theory  39 comments  other blogs  11012 reads

Browse archivesActive forum topics 
Recent comments
9 hours 29 min ago
12 hours 54 min ago
13 hours 6 min ago
14 hours 4 min ago
14 hours 30 min ago
14 hours 43 min ago
14 hours 57 min ago
15 hours 2 min ago
19 hours 34 min ago
19 hours 44 min ago