Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Walid Taha is active.

Publication


Featured researches published by Walid Taha.


partial evaluation and semantic-based program manipulation | 1997

Multi-stage programming with explicit annotations

Walid Taha; Tim Sheard

We introduce MetaML, a statically-typed multi-stage programming language extending Nielson and Nielsons two stage notation to an arbitrary number of stages. MetaML extends previous work by introducing four distinct staging annotations which generalize those published previously [25, 12, 7, 6]We give a static semantics in which type checking is done once and for all before the first stage, and a dynamic semantics which introduces a new concept of cross-stage persistence, which requires that variables available in any stage are also available in all future stages.We illustrate that staging is a manual form of binding time analysis. We explain why, even in the presence of automatic binding time analysis, explicit annotations are useful, especially for programs with more than two stages.A thesis of this paper is that multi-stage languages are useful as programming languages in their own right, and should support features that make it possible for programmers to write staged computations without significantly changing their normal programming style. To illustrate this we provide a simple three stage example, and an extended two-stage example elaborating a number of practical issues.


european conference on object oriented programming | 2007

Gradual typing for objects

Jeremy G. Siek; Walid Taha

Static and dynamic type systems have well-known strengths and weaknesses. In previous work we developed a gradual type system for a functional calculus named


international conference on computer engineering and systems | 2008

Plenary talk III Domain-specific languages

Walid Taha

\lambda^?_\to


Lecture Notes in Computer Science | 2004

A Gentle Introduction to Multi-stage Programming

Walid Taha

. Gradual typing provides the benefits of both static and dynamic checking in a single language by allowing the programmer to control whether a portion of the program is type checked at compile-time or run-time by adding or removing type annotations on variables. Several object-oriented scripting languages are preparing to add static checking. To support that work this paper develops


generative programming and component engineering | 2003

Implementing multi-stage languages using ASTs, Gensym, and reflection

Cristiano Calcagno; Walid Taha; Liwen Huang; Xavier Leroy

\mathbf{Ob}^{?}_{<:}


Lecture Notes in Computer Science | 2004

DSL Implementation in MetaOCaml, Template Haskell, and C++

Krzysztof Czarnecki; John O’Donnell; Jörg Striegnitz; Walid Taha

, a gradual type system for object-based languages, extending the Ob < : calculus of Abadi and Cardelli. Our primary contribution is to show that gradual typing and subtyping are orthogonal and can be combined in a principled fashion. We also develop a small-step semantics, provide a machine-checked proof of type safety, and improve the space efficiency of higher-order casts.


international conference on functional programming | 2001

Real-time FRP

Zhanyong Wan; Walid Taha; Paul Hudak

Computer science is undergoing a revolution today, in which language designers are shifting attention from general purpose programming languages to so-called domain-specific languages (DSLs). General-purpose languages like Java, C#, C++, and C have long been the primary focus of language research. The idea was to create one language that would be better suited for programming than any other language. Ironically, we now have so many different general purpose languages that it is hard to imagine how this goal could be attained. Instead of aiming to be the best for solving any kind of computing problem, DSLs aim to be particularly good for solving a specific class of problems, and in doing so they are often much more accessible to the general public than traditional programming languages.


european symposium on programming | 1999

An Idealized MetaML: Simpler, and More Expressive

Eugenio Moggi; Walid Taha; Zine El-Abidine Benaissa; Tim Sheard

Multi-stage programming (MSP) is a paradigm for developing generic software that does not pay a runtime penalty for this generality. This is achieved through concise, carefully-designed language extensions that support runtime code generation and program execution. Additionally, type systems for MSP languages are designed to statically ensure that dynamically generated programs are type-safe, and therefore require no type checking after they are generated.


practical aspects of declarative languages | 2002

Event-Driven FRP

Zhanyong Wan; Walid Taha; Paul Hudak

The paper addresses theoretical and practical aspects of implementing multi-stage languages using abstract syntax trees (ASTs), gensym, and reflection. We present an operational account of the correctness of this approach, and report on our experience with a bytecode compiler called MetaOCaml that is based on this strategy. Current performance measurements reveal interesting characteristics of the underlying OCaml compiler, and illustrate why this strategy can be particularly useful for implementing domain-specific languages in a typed, functional setting.


Journal of Functional Programming | 2003

‘Semantics, Applications, and Implementation of Program Generation’

Walid Taha

A wide range of domain-specific languages (DSLs) has been implemented successfully by embedding them in general purpose languages. This paper reviews embedding, and summarizes how two alternative techniques – staged interpreters and templates – can be used to overcome the limitations of embedding. Both techniques involve a form of generative programming. The paper reviews and compares three programming languages that have special support for generative programming. Two of these languages (MetaOCaml and Template Haskell) are research languages, while the third (C++) is already in wide industrial use. The paper identifies several dimensions that can serve as a basis for comparing generative languages.

Collaboration


Dive into the Walid Taha's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Tim Sheard

Portland State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Aaron D. Ames

California Institute of Technology

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge