Ladder programming language (also known as ladder logic, relay ladder logic or ladder diagrams) is a graphical language very popular for programming programmable logic controllers.

A program in ladder logic, also called a ladder diagram, is similar to a set of relay circuits, thus is easy to use for non programmers electrical engineers. Ladder logic is useful for simple but critical usage, or for automation of old hardwire relay circuits. The Language itself can be seen as a set of conection between logical checkers (relays) and actuators (coils).

Most providers of programmable logic controllers also provide associated ladder logic programming systems. Typically, the ladder logic languages from two different providers will not be compatible; ladder logic is better thought of as a set of closely related programming lanugages rather than one language.

Example of a simple ladder logic program

Here is an example of what one rung in a ladder logic program might look like. In real life, they'd typically be hundreds or thousands of rungs.

----| |----+----|/|------------------------------------------( )----
    in1    |    in3                                          out1
           |
----| |----+
    in2

In this program, in1, in2, and in3 are all boolean input values. out1 is a boolean output value. The same logic in Pascal would look something like:

out1 := (in1 or in2) and not in3;