Perché Fortran non è mai stato utilizzato per sviluppare un sistema operativo?

3

Non sono uno sviluppatore Fortran, ma sto per usarlo un po 'e mi sono trovato a chiedermi perché, se è molto più vecchio di C ma altrettanto performante come C, non è mai stato usato per sviluppare alcun funzionamento sistema prima che C e UNIX arrivassero?

Una risposta sostitutiva, se la precedente non è valida, potrebbe essere quale sistema operativo è stato sviluppato in Fortran. Ma ancora, non sembra affatto prendere piede.

    
posta bbarker 06.10.2014 - 17:43
fonte

4 risposte

14

Direi che Fortran, anche in pre-C, astrae troppo il programmatore dai dettagli dell'hardware.

  • Nessun supporto puntatore. Se si desidera passare grandi quantità di dati tra le subroutine, si utilizza un blocco COMMON e non si controlla la relativa allocazione. L'aritmetica del puntatore e il controllo dell'allocazione della struttura sono difficili o inesistenti.
  • I tipi di dati sono orientati ai valori numerici. Fare riferimento a un particolare byte è un po 'difficile, per non dire bit.
  • I / O viene fornito da dichiarazioni di linguaggio, non da subroutine. Si dipende dal runtime del compilatore per questo e non è possibile eseguire il rollover.

Questo è fuori dalla mia testa; l'ultima volta che ho scritto il codice Fortran-IV era ~ 25 anni fa.

Forse potresti modificare un compilatore Fortran per introdurre le funzionalità mancanti. Ma la costruzione di un linguaggio "assembly portatile" per scopi speciali come C si è dimostrato più semplice ed efficace.

    
risposta data 06.10.2014 - 18:20
fonte
9

Chi dice che FORTRAN non è mai stato utilizzato per sviluppare un sistema operativo?

Computer principale PRIMOS è stato scritto in FORTRAN. L'ho incontrato per la prima volta nel 1982, ma era già da un po 'di tempo. C'era un assemblatore, ma non più di quello che c'era in Unix, che è in gran parte descritto come " scritto in C ".

    
risposta data 13.10.2014 - 02:42
fonte
1

No.

A parte i problemi strutturali legati alla mancanza di puntatori e all'accesso all'hardware che è tipicamente necessario per la progettazione del sistema operativo (fortran è troppo astratto), fortran ha avuto anche un problema significativo con diverse versioni di produttori diversi, beh, diversi. Fortran 66 è stata la prima versione standard del settore (prima di fortran 77), ma anche con questi standard c'erano molte altre versioni là fuori.

C'erano anche altre lingue che hanno offrono l'accesso necessario alla memoria come memoria, hardware e un po 'meno astratto. Avevi PL / I da '64 che era usato per scrivere Multix. BCPL e B rispettivamente da '66 e '69 sono stati utilizzati anche per lo sviluppo del sistema operativo. E poi c'era e C da '72. E non bisogna dimenticare il MCP per Burroughs B5000 scritto in Algol nel '61 (confrontare con Fortran introdotto in ' 58).

Tutte le lingue migliori erano scelte migliori per la progettazione del sistema operativo e venivano utilizzate per vari sistemi operativi. Erano standardizzati, multipiattaforma e stabili in un momento in cui Fortran non era ben standardizzato e i programmi che giravano su IBM potrebbero non funzionare su apparecchiature digitali. Erano anche disponibili poco dopo fortran e la gente ha iniziato a pensare di scrivere un sistema operativo in un linguaggio che non era più visto come lento (la tecnologia del compilatore e le ottimizzazioni stavano fissando l'assemblaggio codificato a mano).

Quindi, no. Non c'era alcun motivo per scrivere un sistema operativo in Fortran quando c'erano molti strumenti migliori disponibili per coloro che volevano occuparsene. Poiché fortran come linguaggio di sistema non è registrato nella cronologia mentre altri sono, e certamente sarebbe stato notevole è probabilmente sicuro dire che non è stato fatto nessuno sviluppo serio del sistema operativo in Fortran.

Da un Fortran 95 volantino:

Not being a general-purpose language, there are some things Fortran is very bad at. Anyone trying to write a compiler or operating system in Fortran is probably mad or about to become mad. However the ‘old’ University Library electronic catalogue, which is soon to be replaced, is written in Fortran, even though this is far from the sort of application for which Fortran was designed.

    
risposta data 07.10.2014 - 02:43
fonte
-12

Fortran è un linguaggio di programmazione LINEARE e non è adatto allo sviluppo di un sistema operativo.

La famiglia di lingue C sono le lingue di programmazione ORIENTATE ALLO SCOPO (OOP). Consentono ai programmi non lineari di eseguire più routine simultanee, rami, sotto-routine, il tutto senza inutili complicazioni.

Pensa a Fortran come una pipa che trasporta l'acqua dal punto A al punto B. Pensa alle lingue OOP come a un oceano che si estende da una riva all'altra, facendo ogni sorta di cose, tutte insieme.

    
risposta data 06.10.2014 - 20:15
fonte

Leggi altre domande sui tag