Qual è il significato della linea - "il compilatore si auto-compila se è scritto in P"? [duplicare]

0

Secondo la definizione del compilatore, il compilatore è un programma che traduce un programma scritto in un linguaggio di programmazione P (codice sorgente) in un programma scritto in un linguaggio macchina M (codice macchina).

And also "the compiler is self-compiling if it is written in P".

ora la domanda è qual è il significato della linea- "il compilatore è auto-compilante se è scritto in P"?

    
posta coding_ninza 01.09.2017 - 16:04
fonte

2 risposte

1

Il significato è esattamente ciò che pensi significhi. Un compilatore è un programma per computer, e come tale è scritto in un linguaggio di programmazione. Qualsiasi compilatore concreto si traduce dalla lingua A alla lingua B, pur essendo stato scritto nel linguaggio C. Se A == C, allora il compilatore è auto-compilante (o self-hosting). Altrimenti, non lo è.

La domanda che potresti chiederti è: come è stato creato il compilatore in primo luogo? La risposta è che i programmi per computer grandi e complessi non vengono creati tutto in una volta. La maggior parte dei compilatori auto-hosting sono stati inizialmente scritti in linguaggi di livello inferiore con un set molto più piccolo di funzionalità supportate e quindi estesi, fino a quando non sono completamente auto-hosting. Questo evita l'ovvio paradosso di come è nato il primo compilatore.

    
risposta data 01.09.2017 - 16:09
fonte
-2

Il compilatore è scritto nella lingua P. Se il programma sottostante è stato scritto in un altro linguaggio Q, il programma dovrebbe essere tradotto in P per compilare.

Ma se il programma fosse scritto in P all'inizio, non ci sarebbe bisogno di una tale traduzione. Ciò renderebbe il programma "auto-compilante".

Non tutti i programmi possono essere costruiti in questo modo, ma quando è possibile, i risparmi in termini di tempo e denaro potrebbero essere piuttosto significativi.

    
risposta data 01.09.2017 - 18:29
fonte

Leggi altre domande sui tag