Quali sono le origini delle dichiarazioni di funzioni pubbliche / private?

8

La domanda

Quali sono le origini del paradigma della funzione pubblico / privato?

Sfondo

Una domanda è arrivata in chat sui file di intestazione in C, e il loro utilizzo è stato principalmente per aiutare il compilatore, non il programmatore. Tuttavia, è a mia conoscenza che questo è il primo utilizzo del concetto di funzioni "private" o funzioni che non sono prototipate nel file di intestazione. Se C non avesse usato i file header per dichiarare le funzioni, avremmo ancora il concetto attuale di funzioni pubbliche e private come visto in C # o Java? Oppure questo concetto è stato inizialmente sviluppato altrove e semplicemente implementato nello schema C Header / Source

    
posta Ampt 24.03.2014 - 17:10
fonte

2 risposte

10

Privato / pubblico viene dalla lingua originale OO, Simula , che ha preceduto C di alcuni anni. Secondo l'articolo di Wikipedia, il concetto originale è stato implementato per la prima volta nella variante TOPS / 10 di Simula, ed è stato integrato nello standard linguistico core nel 1987. Non si dice quando TOPS / 10 Simula sia stato creato per la prima volta, quindi, potrebbe essere o non essere stato precedente a C.

Senza riguardo, anche se C e il suo file system di intestazione non erano stati intorno, i linguaggi di programmazione moderni avrebbero comunque ereditato il concetto di incapsulamento attraverso il sistema pubblico / privato di Simula.

    
risposta data 24.03.2014 - 17:23
fonte
1

Penso che l'idea di rendere private parti di codice abbia radici che vanno più indietro di Simula. Scheme (1975) è stata la prima lingua a implementare le chiusure, che offre la possibilità di incapsulare dati come lambda. Lo schema consente inoltre di specificare le funzioni interne utilizzando la parola chiave define.

Rendere le funzioni private consente di incorporare più astrazioni in un programma. Costruire astrazioni nei programmi ha una lunga storia, con linguaggi varianti LISP come Scheme che contribuiscono molto allo sviluppo dei moderni linguaggi di programmazione.

Struttura e interpretazione dei programmi per computer di Abelson, Sussman è un libro eccellente per saperne di più sulle astrazioni se sei interessato a queste cose.

    
risposta data 25.03.2014 - 22:54
fonte

Leggi altre domande sui tag