The "non-etheric" part of your question is interesting. Contracts make sense when there is support for them in a programming language, otherwise it's just a good syntax for comments.
This leads us to contract-supported languages. I know three people except Eiffel:
The first two have executable contracts. Benefits: Can be used as runtime statements. Disadvantages: lack of expressive ability to fully indicate what the function does in the contract. You can basically only write health checks.
ACSL, , . , , . ACSL , Hoare.
( : Frama-C, ACSL - , , ), "ACSL " - C ACSL, Fraunhofer FIRST. , Device-soft. , , . , -.