InfoQ Homepage Language Design Content on InfoQ
-
Civilizing Web Programming with Dart
Gilad Bracha presents the motivation behind building Dart, the current state of the Dart platform and where it is heading to.
-
Axiomatic Language
Axiomatic language is based on the idea that the external behavior of a program can be defined by an infinite set of symbolic expressions that enumerate all possible inputs, along with the outputs.
-
Nimrod: A New Approach to Metaprogramming
Nimrod is a statically typed programming language that tries to give the programmer ultimate power without compromises on runtime efficiency.
-
Noether: Symmetry in Programming Language Design
Daira Hopwood introduces Noether, an experimental language meant to write more secure, robust and efficient programs, being built on multiple layers satisfying different levels of symmetries.
-
Deconstructing Functional Programming
Gilad Bracha explains how to distinguish FP hype from reality and to apply key ideas of FP in non-FP languages, separating the good parts of FP from its unnecessary cultural baggage.
-
Babel: An Untyped, Stack-based HLL
Clayton Bauman introduces Babel, an open source language implemented in C, targeted for cloud computing. Other features: interpreted, untyped stack-based, postfix, supports arrays, lists and hashes.
-
Scala vs Idris: Dependent Types, Now and in the Future
Miles Sabin and Edwin Brady exemplify what can be done with a language with dependent types, what are the limitations and what could be done in the future when dependent types reach maturity.
-
Reasonable Code with F#
Mike Falanga shows several C# and F# solutions to common programming problems, comparing how well each language enhances the ability to draw accurate conclusions about the code.
-
Gershwin: Stack-based, Concatenative Clojure
Daniel Gregoire introduces Gershwin, a stack-based, concatenative programming language with a Clojure runtime that targets the JVM.
-
C++14 Early Thoughts
Bjarne Stroustrup discusses features that might appear in C++14: braces for copy initialization, return type deduction in functions, generic (polymorphic) lambdas, user-defined literals, etc.
-
Protocols, Functors and Type Classes
Creighton Kirkendall discusses how polymorphism is implemented in Clojure, Ocaml, Haskell and Scala.
-
Racket: Metaprogramming Time!
Matthew Flatt introduces Racket, an extensible programming language useful to create new syntactic forms and construct entirely new programming languages.