Categories
Blog Engineering Software Development

Train Sidings – A TLA+ Example

What is TLA+?

TLA+ is a modeling language in which one can model technical systems with discrete states. It has been used to describe many things, from the jugs problem in Die Hard 3 over a diverse array of algorithms up to Amazon Storage Services. The power of TLA+ comes from the TLC Model Checker, which checks your model for certain properties. These properties could be invariants — statements that are true of every possible state, like there are no buffer overruns. And it can check temporal properties — e.g., that an algorithm eventually finishes.

Categories
Blog Software Development

Choosing Your First Programming Language

Categories
Blog Software Development

What is a Programming Language?

Categories
Blog Software Development

Thinking Like a Computer – Data Types

Categories
Blog Software Development

Thinking like a Computer – Algorithms

An algorithm is a description of a process that operates on a given input to produce a desired output. This definition is both very general and very similar to the description of what a computer does. The difference is that an algorithm is just a description of a process. It does not necessarily have to run on a computer. But algorithms are also sequences, and thus they are very well suited to be executed by a computer program.

Categories
Blog Software Development

Thinking Like a Computer

Now you know how a computer works. The basic concepts are actually rather simple. Of course, actually building a computer is an incredibly complex undertaking. Fortunately, we programmers can focus on programming them.

In the last section we learned that a computer command basically performs these three task:

  1. Read the instruction and data from memory.
  2. Perform a calculation.
  3. Store the result at another address.

Then the computer continues with the next command. Then the next. And so on. This is the programming of the computer.