Main Page

From ABL
Jump to: navigation, search

ABL Documentation

ABL is a language for designing believable agents, agents that act in a world, make decisions, and work to satisfy goals. ABL was written by Michael Mateas at CMU (more). ABL has structures to define

  • how the agent interacts with the world:
    • how to sense the world
    • how to take actions in the world
  • goals and subgoals
  • relationships between goals, persistent goals, one-time goals, different ways of accomplishing goals
  • joint behaviors between characters

The ABL compiler is written in Java and targets Java; the generated Java code is supported by the ABL runtime system. In a given context it is usually clear whether the term "ABL" is referring to the compiler or the runtime. Following are the main sections we have for the manual at the moment.

A New, Updated ABL Manual Is In Progress and Available Here

Updated Manual - In Progress

Language Reference

ABL Language

Action Registration

Behavior Modifiers

Behavior Types

Declaring WMEs

Joint Behaviors

Language Grammar


Sensor Registration

Step Modifiers

Step Types

Test Expressions

Working Memory


ABL Runtime



Decision Cycle

Behavior Selection

Active Behavior Tree

Asynchronous Sensory Motor Systems

Pragmatic ABL


Basic ABL Concepts


Hello World!

A Rush Strategy Agent for ABL-Wargus

Understanding Test Expressions

Coding Idioms




Debugging with ABL

Common Debugging Scenarios

Known Issues and Workarounds

ABL Debugger Overview

Syntax Highlighting for ABL in Eclipse




Vim Syntax Highlighting

IntelliJ Syntax Highlighting - save to the C:\Users\YOURUSERNAMEHERE\.IntelliJIdea90\config\filetypes directory

Old Documents

These documents are prior versions of the ABL documentation; they are in Microsoft Word format. We are in the process of renovating them and moving them to Mediawiki format. We will strike through them as they get moved.

Background material for manual writers

  • ABL Dissertation Chapter -- A chapter from Michael's dissertation describing ABL. Mostly describes implementation details, though does provide some high-level discussion of joint goals.
  • Hap Dissertation (pdf) -- Bryan Loyall's dissertation on Hap, the language ABL is based on.