# US 8,543,975 B2 · Behavior-first event programming model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,543,975 B2
- Document ID: US8543975B2
- Status: Granted
- Kind: B2
- Application number: 12/338,306
- Filed: 2008-12-18
- Published: 2010-06-24
- Granted: 2013-09-24
- Earliest claimed: 2008-12-18
- Assignees: Microsoft Corporation
- Applicants: Adam D. Nathan; Chi Wai Wong
- Inventors: Adam D. Nathan; Chi Wai Wong
- Web page: https://patentgrep.com/patent/US8543975B2

## CPC

- G06F 8/20: Software design
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Traditional programming environments that support event-driven programming typically expose a model where the developer chooses an event to handle on a given object, and then writes the code for that event handler. In contrast, as described herein, the traditional flow of program development is reversed. A (configurable) event-handler (“behavior”) is selected. Upon selection of one of the behaviors, the event triggering the behavior is selected. This is a “what-then-when” approach rather than the traditional “when-then-what” approach for event-driven programming.

## Claims

### Claim 1

A system for exposing a behavior-first event programming model comprising:
a software development computer comprising a processing unit coupled to a memory, the memory comprising an integrated development environment employed during development of an executable program, the integrated development environment comprising a behavior-first component exposing a behavior-first programming model for software development via at least one user interface, wherein the behavior-first programming model includes a set of abstractions for events and behaviors for use in developing a software program, wherein the behavior-first component receives selection from a user of a behavior comprising a configurable event-handler, the behavior-first component, in response to the selection, provides a list of a plurality of events that can be associated with the behavior to the user via the at least one user interface, the behavior-first component then receiving from the user selection of an event of the plurality of events on the list to trigger the behavior via the at least one user interface, the behavior-first component then transforming the received behavior and event into the executable program.

### Claim 2 (depends on 1)

The system of claim 1, further comprising:
the at least one user interface, wherein the at least one user interface receives input from the user and transfers the received input to the behavior-first component.

### Claim 3 (depends on 1)

The system of claim 1, wherein the behavior-first component receives configuration settings for events, conditions and actions associated with the selected behavior.

### Claim 4 (depends on 1)

The system of claim 1, wherein the behavior-first component generates an event-driven program from information received via the at least one user interface.

### Claim 5 (depends on 1)

The system of claim 1, wherein the behavior-first component generates output from which an event-driven program is generated.

### Claim 6 (depends on 5)

The system of claim 5, wherein the event-driven program is a video game.

### Claim 7 (depends on 1)

The system of claim 1, wherein the event handler is user-defined.

### Claim 8

A method for creating an event-driven program comprising:
using an integrated development environment, during development of an executable program:
receiving selection of a behavior comprising a configurable event-handler based on input received from a user of a behavior-first programming model executed by a processor via at least one user interface;
in response to receiving selection of the behavior, providing a list of a plurality of events that can be associated with the behavior via the at least user interface;
receiving from the user an event of the plurality of events on the list to trigger the behavior via the at least one user interface; and
transforming the received behavior and event into the executable program.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
receiving configuration settings via the at least one user interface for events, conditions and actions associated with the received behavior.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
in response to receiving the configuration settings, generating connections so that at runtime the actions associated with the received behavior are performed.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
generating a file from which the executable program is generated.

### Claim 12 (depends on 11)

The method of claim 11, wherein the file comprises an XML file, wherein the XML in input to a game engine and the executable program is a video game.

### Claim 13 (depends on 8)

The method of claim 8, further comprising:
receiving input from a user via a user interface.

### Claim 14

A computer-readable storage memory comprising computer-executable instructions which when executed cause a computing environment to:
during development of an executable program, using an integrated development environment to:
receive a behavior comprising a configurable event-handler based on input received from a user of a behavior-first programming model executed by a processor via at least one user interface;
in response to receiving the behavior, provide to the user a list of a plurality of events that can be associated with the behavior via the at least one user interface;
receive from the user selection of an event of the plurality of events on the list to trigger the behavior via the at least one user interface; and
transform the received behavior and event into the executable program.

### Claim 15 (depends on 14)

The computer-readable storage memory of claim 14, comprising further computer-executable instructions, which when executed cause the computing environment to:
generate a file from which the executable program is generated.

### Claim 16 (depends on 15)

The computer-readable storage memory of claim 15, comprising further computer-executable instructions, which when executed cause the computing environment to:
wherein the file comprises an XML file, wherein the XML in input to a game engine and the executable program is a video game.

### Claim 17 (depends on 14)

The computer-readable storage memory of claim 14, comprising further computer-executable instructions, which when executed cause the computing environment to:
generate a file from which the executable program is generated, the file comprising a source code file, an XML file, a script file, or a text file.

### Claim 18 (depends on 14)

The computer-readable storage memory of claim 14, comprising further computer-executable instructions, which when executed cause the computing environment to:
generate the executable program directly.
