La differenza tra runtime e tempo di compilazione

Autore: Mike Robinson
Data Della Creazione: 13 Settembre 2021
Data Di Aggiornamento: 9 Maggio 2024
Anonim
Dependency management in C++ - Xavier Bonaventura - code::dive 2019
Video: Dependency management in C++ - Xavier Bonaventura - code::dive 2019

Contenuto

Il funzionamento di un programma per computer è un mistero per l'utente tipico che si fida del lavoro dei programmatori. Il programmatore deve comprendere come il computer si aspetta di ricevere i comandi nelle due fasi di esecuzione (tempo di compilazione e tempo di esecuzione), oltre ad altri concetti.

Tempo di costruzione

La prima fase dell'esecuzione di un programma, il tempo di compilazione, implica la traduzione del linguaggio comprensibile dagli esseri umani, o "codice sorgente", in un linguaggio che il computer comprende, o "codice macchina". Il codice sorgente contiene parole che riconosci, numeri in formato decimale e strutture organizzate che facilitano la comprensione del flusso delle istruzioni. Il passaggio del tempo di compilazione viene completato quando il nuovo programma è un file eseguibile.


Runtime

Il computer utilizza le istruzioni prodotte in fase di compilazione per eseguire il programma. Durante il runtime, il computer legge la traduzione del codice sorgente per eseguire le attività incorporate dal programmatore. Ogni volta che qualcuno esegue il programma, lo fa in fase di esecuzione.

Differenza

Il tempo di compilazione viene superato solo una volta per tradurre il codice sorgente in un file eseguibile, che può essere richiamato tutte le volte necessarie senza dover compilare nuovamente, a meno che il programma non abbia bisogno di modifiche. La maggior parte degli utenti utilizza solo il runtime.


Errori in fase di compilazione

Possono verificarsi errori durante entrambe le fasi di esecuzione del programma. Nel codice sorgente sono presenti errori in fase di compilazione o errori di sintassi. Esempi di questi sono comandi con errori di ortografia, problemi nell'ordine delle operazioni, combinazioni incompatibili di tipi di variabili e omissioni di elementi necessari. Un programmatore può rilevare facilmente gli errori in fase di compilazione, perché sono sintattici piuttosto che logici. Il compilatore di solito trova un errore in fase di compilazione e spiega o fornisce suggerimenti per risolverlo. Se il compilatore produce un file eseguibile dal codice, il programma non presenta errori in fase di compilazione.

Errori catastrofici in fase di esecuzione

Gli errori di runtime possono causare un arresto anomalo del programma e la chiusura anticipata. Esempi di tali errori sono l'accesso alla memoria limitata e la divisione per zero. L'istruzione "x / y" è sintatticamente corretta, ma se "y" contiene un valore di 0 in fase di esecuzione, il programma fallirà. Un programmatore potrebbe avere difficoltà a trovare errori in fase di esecuzione a causa del fatto che di solito si verificano in determinate condizioni.


Errori logici di runtime

Un errore logico non causa il fallimento del programma, ma lo fa funzionare in un modo che il programmatore non desidera. Si consideri un programma con un menu di opzioni che si aspetta che l'utente immetta il numero di opzione desiderato. Se l'utente digita una lettera, il programma, in attesa di un numero, può trasformarlo in un valore numerico e inviare l'utente a una delle opzioni, sembrando che nulla sia sbagliato invece di informare l'utente che ha digitato un'opzione non valida.