天天看點

靜态語言和動态語言

侵删

筆記:

  1. 動态語言(弱類型語言)是運作時才确定資料類型的語言,變量在使用之前無需申明類型,通常變量的值是被指派的那個值的類型。比如Php、Asp、JavaScript、Python、Perl等等。弱類型語言是資料類型可以被忽略的語言。它與強類型語言相反,一個變量可以賦不同資料類型的值。一個變量的類型是由其上下文決定的,效率更高。它是一類在執行時能夠改變其結構的語言:比如新的函數、對象、甚至代碼能夠被引進,已有的函數能夠被删除或是其它結構上的變化。
  2. 舉個例子:以動态類型語言Python為例,即使一個Person類中沒有name屬性,也可以不在Person類中添加name屬性字段,而是直接給Person綁定name屬性。

    Person.name=none;p1=Person("hhh", "23") print p1.name

  3. 靜态語言(強類型語言)是編譯時變量的資料類型就可以确定的語言,大多數靜态語言要求在使用變量之前必須生命資料類型。比如Java、C、C++、C#等。強類型語言是必須強制确定資料類型的語言,一旦一個變量被指定了某個資料類型,如果不經過強制轉換,那麼它就永遠是這種資料類型。一個變量的類型是申明的時候就已經确定的,更安全。相對于動态語言。靜态語言具有嚴謹性。
  4. 差別1:靜态語言由于強制聲明資料類型,讓開發工具(IDE)對代碼有很強的判斷能力,在實作複雜的業務邏輯和開發大型商業系統、以及那些聲明周期很長的應用中,開發者可以依托強大的IDE來更高效、更安全地開發。    動态語言思維不受限制,可以任意發揮,把更多的精力放在産品本身上;集中思考業務邏輯實作,思考過程就是實作過程。
  5. 差別2:動态類型語言:是指在運作期間才去做資料類型檢查的語言。在用動态語言程式設計時,不用給變量指定資料類型,該語言會在你第一次指派給變量時,在内部将資料類型記錄下來。    靜态類型語言:與動态類型語言剛好相反,它的資料類型檢查發生在在編譯階段,也就是說在寫程式時要聲明變量的資料類型。C/C++、C#、JAVA都是靜态類型語言的典型代表。
上一篇: 語言