Cosa si intende per "ridondante, ma non duplicato" nei requisiti di lingua Steelman?

3

I requisiti della lingua Steelman hanno questo:

The language shall require some redundant, but not duplicative, specifications in programs.

Penso di poter vedere l'idea di base (che riportare le cose potrebbe portare a meno errori dati i limiti della cognizione umana), ma vorrei una spiegazione più dettagliata.

Che cosa intendono con "ridondante" e "duplicativo"?

    
posta Vasiliy Faronov 13.12.2014 - 17:49
fonte

2 risposte

2

Significa che ti verrà richiesto di scrivere cose che potrebbero essere ragionevolmente dedotte da altre cose nel codice. Ma non implementerai la stessa cosa due volte.

Un esempio di ciò che intendono sono i sistemi di tipi. Potresti essere in grado di dedurre l'esistenza e i tipi di variabili dal loro utilizzo, ma la ridondanza della dichiarazione esplicita può rilevare errori.

In caso di dubbi, pensa a link perché è ciò che è venuto fuori da questo sforzo.

    
risposta data 13.12.2014 - 22:42
fonte
3

In questo contesto "ridondante" significa che il comportamento del programma è descritto più volte. Ma "non duplicativo" significa che ognuno dei tipi specifici di comportamenti è diverso.

Ad esempio, test automatici. Il codice è "ridondante", perché il comportamento è descritto due volte: una volta nel codice e una volta nella forma del test automatico. Ma non è una duplicazione, perché entrambi i casi usano un modo completamente diverso di esprimere ciò che fanno.

Almeno è così che lo capisco.

    
risposta data 13.12.2014 - 18:29
fonte