Ohjelman Suorittaminen
Kääntäjä on erikoisohjelma, joka muuntaa ihmisen luettavan C-lähdekoodin konekieleksi, jota suoritin voi ajaa. Tämä muunnosprosessi mahdollistaa kirjoitettujen ohjeiden muuttamisen suoritettavaksi tiedostoksi, jonka tietokone ymmärtää ja suorittaa.
Jotta koodi voidaan muuntaa suorittimen ymmärtämiksi komennoiksi, tarvitaan kääntäjä. Kääntäjä käsittelee koodin järjestyksessä ylhäältä alas. Käännösprosessi etenee useassa vaiheessa:
-
Esikäsittelyvaihe: kaikki
#include-ohjeet käsitellään, jolloin ulkoiset tiedostot, kirjastot ja muut tarvittavat osat liitetään ohjelmaan; -
Syntaksivirheiden tarkistus: kääntäjä tarkistaa syntaksivirheet ja keskeyttää käännöksen, jos virheitä löytyy, korostamalla ne korjausta varten;
-
Käännös suoritettavaan tiedostoon: ohjelma muunnetaan suoritettavaksi tiedostoksi (esim.
.exeWindowsissa), jolloin sitä voidaan ajaa kuten mitä tahansa muuta sovellusta.
Suoritettava tiedosto on yksinkertaisesti sarja ohjeita (konekoodia), tarkoitettu prosessorille. Esimerkiksi lause "Hello, c<>definity" konekoodina saattaa muistuttaa jonoa.
program.exe
1201001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001
Seuraavaan koodiin on lisätty tarkoituksellinen virhe havainnollistamaan, kuinka C-kääntäjä tunnistaa ja raportoi ongelmat.
Main.c
12345678#include <stdio.h> int main() { printf("some text") // Error line return 0; }
Kääntäjä odottaa puolipistettä (;) viidennen rivin lopussa. Ilman sitä kääntäjä ei tunnista, mihin lause päättyy, ja käsittelee return 0; osana samaa riviä. Tämän seurauksena virheilmoitus ilmestyy seuraavalle riville, vaikka todellinen ongelma on puuttuva puolipiste printf-komennon jälkeen.
Main.c
12345678#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }
C-kääntäjä on varsin salliva ylimääräisten puolipisteiden suhteen. Vaikka ne saattavat näyttää oudolta, useita ; käsitellään tyhjinä lauseina, eikä niillä ole vaikutusta ohjelman toimintaan. Koodi kääntyy ja suorittuu silti ongelmitta, mutta ylimääräisten puolipisteiden välttäminen on hyvä tapa pitää koodi siistinä ja luettavana.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 2.63
Ohjelman Suorittaminen
Pyyhkäise näyttääksesi valikon
Kääntäjä on erikoisohjelma, joka muuntaa ihmisen luettavan C-lähdekoodin konekieleksi, jota suoritin voi ajaa. Tämä muunnosprosessi mahdollistaa kirjoitettujen ohjeiden muuttamisen suoritettavaksi tiedostoksi, jonka tietokone ymmärtää ja suorittaa.
Jotta koodi voidaan muuntaa suorittimen ymmärtämiksi komennoiksi, tarvitaan kääntäjä. Kääntäjä käsittelee koodin järjestyksessä ylhäältä alas. Käännösprosessi etenee useassa vaiheessa:
-
Esikäsittelyvaihe: kaikki
#include-ohjeet käsitellään, jolloin ulkoiset tiedostot, kirjastot ja muut tarvittavat osat liitetään ohjelmaan; -
Syntaksivirheiden tarkistus: kääntäjä tarkistaa syntaksivirheet ja keskeyttää käännöksen, jos virheitä löytyy, korostamalla ne korjausta varten;
-
Käännös suoritettavaan tiedostoon: ohjelma muunnetaan suoritettavaksi tiedostoksi (esim.
.exeWindowsissa), jolloin sitä voidaan ajaa kuten mitä tahansa muuta sovellusta.
Suoritettava tiedosto on yksinkertaisesti sarja ohjeita (konekoodia), tarkoitettu prosessorille. Esimerkiksi lause "Hello, c<>definity" konekoodina saattaa muistuttaa jonoa.
program.exe
1201001000011001010110110001101100011011110010110000100000011000110011110000111 110011001000110010101100110011010010110111001101001011101000111100100100001
Seuraavaan koodiin on lisätty tarkoituksellinen virhe havainnollistamaan, kuinka C-kääntäjä tunnistaa ja raportoi ongelmat.
Main.c
12345678#include <stdio.h> int main() { printf("some text") // Error line return 0; }
Kääntäjä odottaa puolipistettä (;) viidennen rivin lopussa. Ilman sitä kääntäjä ei tunnista, mihin lause päättyy, ja käsittelee return 0; osana samaa riviä. Tämän seurauksena virheilmoitus ilmestyy seuraavalle riville, vaikka todellinen ongelma on puuttuva puolipiste printf-komennon jälkeen.
Main.c
12345678#include <stdio.h> int main() { ;; ;;;;;; printf("C language\n");;; ;return 0; ;;; }
C-kääntäjä on varsin salliva ylimääräisten puolipisteiden suhteen. Vaikka ne saattavat näyttää oudolta, useita ; käsitellään tyhjinä lauseina, eikä niillä ole vaikutusta ohjelman toimintaan. Koodi kääntyy ja suorittuu silti ongelmitta, mutta ylimääräisten puolipisteiden välttäminen on hyvä tapa pitää koodi siistinä ja luettavana.
Kiitos palautteestasi!