Puneet Varma (Editor)

Direct style

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In computer programming, direct style is the usual style of sequential programming, in which control is passed implicitly by simply going to the next line, by subroutine calls, or by constructs such as return, yield, or await. It is contrasted with continuation-passing style, in which control is passed explicitly in the form of a continuation. Direct style programming is widely viewed as easier to write and understand than continuation-passing style, and thus a number of programming language constructs exist to eliminate or minimize the need to explicitly use continuations.

Contents

In mainstream languages continuation-passing style primarily occurs by passing closures as callbacks (function arguments), and thus direct style more simply means that functions return a value, rather than taking a function argument.

Programming constructs

Programming constructs that enable direct style programming include coroutines, which in turn can implement generators and futures, all of which enable a direct style.

Example

For example, in Dart, an animation loop may be written in the following way:

Continuation-passing style

In CPS, the asynchronous call window.animationFrame waits for the next frame, then calls the callback, which requires a callback function and a tail call.

Direct style

In direct style, the asynchronous call window.animationFrame simply yields control, then continues, and while loop can be used instead of a callback.

References

Direct style Wikipedia