Bitcoin transactions are essentially the movement of coins, by encumbering the coins with a restriction on who may redeem them. Bitcoin's internal scripting language is used to accomplish this.The restrictions can be overcome by the owner of the coins, since only they can meet the requirements of that script.
An example is a pay-to-pubkey script. The network interprets this as: whoever can produce a signature from the private key of this public key, can spend the coins. It looks like this:
[public key] OP_CHECKSIG.
To redeem the coins, one provides a the right signature.
Scripts can have varying degrees of complexity. For example:
OP_IF OP_2 [pubkey1] [pubkey2] OP_2 OP_CHECKMULTISIG OP_ELSE [publickey3] OP_CHECKSIG OP_ENDIF.
This script ensures that coins can only be redeemed if the owners of pubkey1 and pubkey2 provide a signature for a suggested transaction, OR, if the owner of publickey3 provides a signature. If either of these conditions are met, then the coins can be spent. That makes it programmable on a very low level.
Scripts are evaluated by the network whenever a transaction occurs, ensuring that the signatures or data which is provided actually meets the needs of the restrictions on the funds.
And although distinct to bitcoins scripting language, since bitcoin software is usually networked to maintain up-to-date knowledge on which transactions are currently spent and unspent, you could write applications to move money around without any human intervention.
In a sense, most payments API's are programmable cash, but the scripting language bitcoin uses is as low as you can get.
"I read about a few BIP (Bitcoin improvement proposals) that specify something about that" Can you specify which ones? – Jan Moritz – 2013-12-16T15:02:40.357
Well, basically BIP 11 and BIP 16 seem quite relevant to me regarding the aspect of "programmable cash". But I'm not quite sure wether if I need to read others as well, and in what order, to get the complete picture. – entreprogreur – 2013-12-16T15:24:47.383
In the meantime I found out that someone - when sending cash - can "program" on how the recipient will be able to spend the money. Kind of placing restrictions on spending for the receiver. I read that the coding works through a programming language called Forth, which I already heard about in my youth in the 70ies :-). I would be much interested if some know more of the details, pros and cons of this "programming" feature of Bitcoin and can explain the big picture. Any hints appreciated! – entreprogreur – 2013-12-21T22:02:16.503