Programma come la NASA ?: Margaret Hamilton's Three Primitive Control Structures [closed]

2

Su diapositiva 19 in una presentazione Margaret Hamilton descrive tre strutture di controllo primitive. Il mio obiettivo è ridurre la probabilità di errori nel mio codice lavorando con questo "framework di progettazione". Mi chiedo se qualcuno potrebbe spiegarmi come funzionano queste strutture. Forse qualcuno potrebbe indicarmi un semplice esempio implementato nel codice.

    
posta noumenal 13.08.2015 - 11:02
fonte

2 risposte

6

Queste tre "strutture di controllo primitive" sono modi per descrivere i modi in cui un manager (superiore) e due (o più) procedure (subordinate) dei lavoratori coordinano il loro lavoro.

La primitiva Join mostra che il manager chiama A con alcuni argomenti, A restituisce alcuni valori, quindi il manager chiama B con i risultati di A. La firma del parametro di uscita di A corrisponde alla firma del parametro di input di B.

La primitiva Includi è essenzialmente una tecnica scatter / gather. Il manager suddivide il lavoro tra A e B e raccoglie i risultati. I subordinati hanno diverse firme dei parametri e fanno cose diverse.

The Or primitive è un processo decisionale in cui uno dei subordinati viene scelto in base a una funzione di partizione per selezionare il bambino. I subordinati hanno le stesse firme dei parametri.

Sta utilizzando questi schemi di progettazione primitivi per imporre un'architettura a strati molto stretta sul software.

È utile ricordare che il programma di sviluppo di Apollo iniziò, funzionò e finì essenzialmente PRIMA Dijkstra scrisse "La struttura del sistema di multiprogrammazione", che esponeva il concetto fondamentale di disegni a strati, e incidentalmente introdotto semafori per l'esclusione reciproca. Ricordiamo che l'Apollo 7, il primo volo con equipaggio di Apollo, fu nel 1968, e l'Apollo 17, l'ultimo volo dell'Apollo sulla Luna, fu nel dicembre 1972.

    
risposta data 13.08.2015 - 21:47
fonte
0

Guardando la diapositiva, è meno un sistema di funzioni che restituisce più uscite e più un sistema che trasmette messaggi. Se scrivi un oggetto che può ricevere e restituire messaggi, può restituire più output semplicemente restituendo più messaggi. Nel loro caso, tuttavia, i messaggi che vengono restituiti sono ordinati, a differenza della maggior parte dei sistemi che trasmettono messaggi che sono asincroni, e i sistemi sono costruiti in una rigida struttura ad albero. Mi ricorda uno scenegraph.

Guarda le architetture dei bus dei messaggi per maggiori informazioni.

    
risposta data 13.08.2015 - 11:18
fonte

Leggi altre domande sui tag