Bitcoin use a scripting language for the transactions, as described in here[0][1].
Interestingly, I believe that this is one of the case where "lazy programmers make best programmers": instead of implementing the transaction system, Satoshi decides that he couldn't be bothered and just put in a scripting system instead (I have no citation for this, and can't claim for certain that this is the case, it was just something I read a while ago).
However, due to security concerns, I think that most of the scripting ability is currently disabled.
Interestingly, I believe that this is one of the case where "lazy programmers make best programmers": instead of implementing the transaction system, Satoshi decides that he couldn't be bothered and just put in a scripting system instead (I have no citation for this, and can't claim for certain that this is the case, it was just something I read a while ago).
However, due to security concerns, I think that most of the scripting ability is currently disabled.
[0]:https://en.bitcoin.it/wiki/Script
[1]:https://en.bitcoin.it/wiki/Contracts