編譯時間(compile time)和執行時(runtime)的區別

大多數程式都是用高階程式語言編寫的。這些程式語言的語法與英語相似。高階語言很容易被人類理解,但計算機卻無法理解。因此,編寫的程式或原始碼應轉換成機器可理解的格式。它被稱為機器程式碼。將原始碼轉換為機器程式碼的時間段稱為編譯時。語法分析、語義分析和程式碼生成等任務在編譯時發生。執行編譯時生成的可執行檔案的時間段稱為執行時。這兩個術語都與不同的程式生命週期階段有關。本文討論編譯時和執行時之間的區別。編譯時和...

關鍵區別-編譯時與運行時

大多數程序都是用高級編程語言編寫的。這些編程語言的語法與英語相似。高級語言很容易被人類理解,但計算機卻無法理解。因此,編寫的程序或源代碼應轉換成機器可理解的格式。它被稱為機器代碼。將源代碼轉換為機器代碼的時間段稱為編譯時。語法分析、語義分析和代碼生成等任務在編譯時發生。運行編譯時生成的可執行文件的時間段稱為運行時。這兩個術語都與不同的程序生命週期階段有關。本文討論編譯時和運行時之間的區別。編譯時和運行時的關鍵區別在於,編譯時是將源代碼轉換為可執行文件的編程生命週期階段,而運行時是指運行編譯時生成的可執行文件的編程生命週期階段。在編譯時發生的錯誤稱為編譯時錯誤,而在運行時發生的錯誤稱為異常。

目錄

1. 概述和主要區別
2. 什麼是編譯時間
3. 什麼是運行時
4.編譯時和運行時的相似性
5. 並行比較-以表格形式顯示編譯時與運行時
6. 摘要

什麼是編譯時間(compile time)?

程序員可以用編程語言向計算機發出指令。程序員使用的大多數編程語言都是高級編程語言。它們的語法與英語相似。這些語言很容易被人類閱讀和理解。源代碼是使用高級語言編寫的程序。源代碼可以包含一組行或多行,具體取決於任務。計算機無法理解使用高級語言提供的指令。計算機能理解機器代碼。因此,源代碼必須編譯成機器代碼才能成為可執行程序。編程生命週期階段稱為編譯時。這是完成編譯過程的時間段。語法分析和編譯操作包括語法分析和代碼生成。

編譯時間(compile time)和運行時(runtime)的區別

圖01:編譯時和運行時

在編譯過程中,可能會發生錯誤。它們是由於語法和語義錯誤而出現的。這些錯誤避免了編譯的成功。編譯器指示編譯時錯誤。它將顯示錯誤發生在哪一行的消息。一些常見的編譯時錯誤包括缺少大括號、標識符拼寫錯誤和關鍵字拼寫錯誤。當編譯錯誤發生時,程序員應該修復這個錯誤。

什麼是運行時(runtime)?

運行時也稱為執行時間。它是一個程序運行的時間,與其他程序生命週期階段(如編譯時間、加載時間等)不同。當編譯過程完成時,它由用戶運行。運行編譯時生成的可執行文件的時間段稱為運行時。術語“運行時”可以用來指代錯誤。即使程序編譯正確,也可能有錯誤。

這些錯誤不會給出預期的輸出。它還可以終止程序的執行。這些錯誤發生在運行時,因此稱為運行時錯誤或異常。當數組越界且內存不足時,某些運行時錯誤將數字除以零。

什麼是編譯時與運行時的相似性(the similarity between compile time and runtime)?

  • 編譯時和運行時都是程序生命週期階段。

編譯時間(compile time)和運行時(runtime)的區別

編譯時與運行時
編譯時是將源代碼轉換為可執行文件的編程生命週期階段。 運行時是程序運行的時間,與其他程序生命週期階段(如編譯時間、鏈接時間和加載時間)不同。
錯誤
編譯時錯誤是語法和語義錯誤。 運行時錯誤稱為異常。

總結 - 編譯時間(compile time) vs. 運行時(runtime)

編譯時和運行時是編程生命週期的兩個階段。本文討論了編譯時和運行時之間的區別。在編譯時將程序員的源代碼轉換為機器代碼。運行編譯時生成的可執行文件稱為運行時。當編譯時出現錯誤時,編譯器會根據錯誤顯示一條消息。即使是編譯的程序,也可能無法給出預期的輸出。在這種情況下,這是一個運行時錯誤或異常。編譯時和運行時的區別在於,編譯時是將源代碼轉換為可執行文件的編程生命週期階段,而運行時是指運行編譯時生成的可執行文件的編程生命週期階段。

引用
  • 發表於 2020-10-19 10:25
  • 閱讀 ( 58 )
  • 分類:科技

你可能感興趣的文章

扔(throw)和丟擲java(throws in java)的區別

...誤,才能正確地執行程式。錯誤可以有兩種型別。它們是編譯時錯誤和執行時錯誤。當有語法錯誤時,由Java編譯器指示。這些被稱為編譯時錯誤。一些常見的編譯時錯誤包括缺少分號、缺少大括號、未宣告的變數以及拼寫錯誤...

  • 發佈於 2020-09-21 19:02
  • 閲讀 ( 52 )

壓倒一切(overriding)和c中的過載#(overloading in c#)的區別

...結發生在執行時,而過載的方法呼叫繫結到其定義發生在編譯時。 C是微軟開發的一種通用程式語言。C的主要優點是它支援面向物件程式設計(OOP)。OOP的一個支柱是多型性。它使一個物件具有多種行為。多型性有兩種型別,稱...

  • 發佈於 2020-10-18 23:50
  • 閲讀 ( 50 )

早期的(early)和後期裝訂(late binding)的區別

...和後期繫結是與多型性相關的兩個概念。早期繫結發生在編譯時,後期繫結發生在執行時。早期繫結和後期繫結的關鍵區別在於早期繫結使用類資訊來解析方法呼叫,而後期繫結使用物件來解析方法呼叫。 Java等程式語言支援面...

  • 發佈於 2020-10-19 04:05
  • 閲讀 ( 51 )

語法錯誤(syntax error)和邏輯錯誤(logical error)的區別

...的語法來編寫程式。當出現語法錯誤時,稱為語法錯誤。編譯時發生語法錯誤。在執行時發生的錯誤稱為執行時錯誤。陣列越界、跳轉為零、訪問不可用的記憶體都是執行時錯誤的一些例子。在編寫程式時,需要遵循一系列步驟...

  • 發佈於 2020-10-19 09:24
  • 閲讀 ( 63 )

最終決賽(final finally)和用java完成(finalize in java)的區別

...值10。e、 g.最終積分p=10。如果p值再次更改為20,將導致編譯時錯誤。final關鍵字防止更改變數的值。 類可以使用現有類中已存在的方法。假設有一個名為B的類具有display()方法。新類是C,它擴充套件了類B。如果類C也有一個名...

  • 發佈於 2020-10-19 15:24
  • 閲讀 ( 52 )

靜態繫結(static binding)和動態繫結(dynamic binding)的區別

...結和動態繫結的關鍵區別在於,在靜態繫結中,繫結是在編譯時解析的,而動態繫結是在執行時(即實際執行時間)解析的。本文討論這兩種繫結機制之間的區別。 目錄 1. 概述和主要區別 2. 什麼是靜態繫結 3. 什麼是動態繫結 4...

  • 發佈於 2020-10-19 17:49
  • 閲讀 ( 90 )

多型性(polymorphism)和oop中的繼承(inheritance in oop)的區別

...但引數不同的方法時,稱為過載。它也被稱為靜態繫結或編譯時多型性。 壓倒一切 另一種多型性是重寫的。參考下面用Java編寫的程式。 圖02:覆蓋 根據上面的程式,在類a中有一個方法display(),類B是從類a擴充套件而來的,...

  • 發佈於 2020-10-19 21:16
  • 閲讀 ( 57 )

超載(overloading)和在java中重寫(overriding in java)的區別

...行為不同。這個概念被稱為過載。它也被稱為靜態繫結或編譯時間多型性。 也可以使用不同的資料型別過載。請參閱下面的Java程式碼。 圖02解釋了Java程式過載的不同數量 根據上面的程式,類由兩個同名的方法組成。sum(inta,i...

  • 發佈於 2020-10-19 21:20
  • 閲讀 ( 44 )

邏輯地址(logical address)和實際地址(physical address)的區別

...址 首先,如果預先知道了實際的記憶體位置,它可能在編譯時發生,這將在編譯時生成絕對程式碼。如果預先不知道記憶體位置,也可能在載入時發生。為此,需要在編譯時生成可重新定位的程式碼。此外,地址繫結可以在執...

  • 發佈於 2020-11-05 21:35
  • 閲讀 ( 102 )

如何編譯自己的linux核心

在安裝Gentoo的同時,編譯自己的Linux核心也是被認為非常古怪和技術性的事情之一。我們已經討論了一些您可能希望這樣做的原因。在我們引導您完成這些步驟之前,下面是一些重要概念的簡要概述。 ...

  • 發佈於 2021-03-15 10:33
  • 閲讀 ( 43 )
H070463527
H070463527

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦