首頁>Club>
還是解釋語言包括了指令碼語言?
10
回覆列表
  • 1 # 經典回憶往事

    計算機不能直接理解高階語言,只能直接理解機器語言,所以必須要把高階語言翻譯成機器語言,計算機才能值型高階語言編寫的程式。

    翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。編譯型語言寫的程式執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要執行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,執行時不需要翻譯,所以編譯型語言的程式執行效率高。

    解釋則不同,解釋性語言的程式不需要編譯,省了道工序,解釋性語言在執行程式的時候才翻譯,比如解釋性basic語言,專門有一個直譯器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

    編譯型語言的優點:

    因為可以直接使用編譯的結果而不需要再次翻譯,所以執行的效率是比較高的!

    編譯程式將源程式翻譯成目標程式後儲存在另一個檔案中,該目標程式可以脫離編譯程式直接在計算機上多次使用,大部分軟體產品都是以目標程式形勢發行給使用者的,不僅便於直接執行,而且又使得他人難以盜用期中的技術!

    編譯型語言的缺點:

    編譯執行的語言因為要直接同CPU的指令集打交道,具有很強的指令依賴性和系統依賴性!

    編譯後的程式是由機器語言指令構成的,但是使用不同硬體平臺的計算機,它們的機器語言是不同的,使得便宜過的程式不 能順利從一個計算機平臺往另外一個平臺上移植,因此在不同的平臺上往往需要重新編譯甚至重寫程式,這將會耗費大量的人力物力財力!

    解釋型語言的優點:

    一般情況下,只要有相應版本的語言直譯器,解釋型語言所寫的程式可以幾乎不做任何修改地移植到其他平臺上去,這相對於編譯型語言來說,是個極大的優勢!

    解釋型語言所寫的程式是逐行進行翻譯執行命令的,因此當語句出現語法問題的時候,可以立即引起程式猿的注意,而程式猿在程式開發期間就能進行校正!

    解釋型語言的缺點:

    解釋型語言的實現中,翻譯器並不產生目標機器程式碼,而是產生易於執行的中間程式碼,但是這種中間程式碼與機器程式碼不同,中間程式碼的解釋是由軟體支援的,不能直接使用硬體,軟體直譯器通常會導致執行效率較低,並且每執行一次就得再翻譯一次,不能像編譯型語言那樣,一次編譯,任意次使用,因而效率方便沒有編譯型的高!

    什麼是指令碼語言?

    指令碼語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等程式語言之間。 HTML通常用於格式化和鏈結文字。而程式語言通常用於向機器發出一系列複雜的指令。

    指令碼語言與程式語言也有很多相似地方,其函式與程式語言比較相象一些,其也涉及到變數。與程式語言之間最大的區別是程式語言的語法和規則更為嚴格和複雜一些。

    與程式程式碼的關係:指令碼也是一種語言,其同樣由程式程式碼組成。

    注:指令碼語言一般都有相應的指令碼引擎來解釋執行。 他們一般需要直譯器才能執行。JAVASCRIPT、ASP、PHP、PERL都是指令碼語言。C/C++編譯、連結後,可形成獨立執行的exe檔案。

    指令碼語言是一種解釋性的語言,例如vbscript、javascript、installshield script等等,它不象c\c++等可以編譯成二進位制程式碼,以可執行檔案的形式存在。 指令碼語言不需要編譯,可以直接用,由直譯器來負責解釋。

    指令碼語言一般都是以文字形式存在,類似於一種命令。舉個例子說,如果你建立了一個程式,叫aaa.exe,可以開啟.aa為副檔名的檔案。 你為.aa檔案的編寫指定了一套規則(語法),當別人編寫了.aa檔案後,你的程式用這種規則來理解編寫人的意圖,並作出迴應。

  • 2 # 西南憨憨牛

    計算機高階語言不是機器語言,所以計算機不能直接執行高階語言。都必須將其翻譯成機器語言,計算機才能執行高階語言編寫的程式。 翻譯的方式有兩種:1.編譯 2.解釋。

    兩種方式只是翻譯的時間不同。編譯型語言寫的程式在被執行之前,需要一個專門的編譯過程,把程式編譯成為機器語言的檔案,比如exe檔案,以後要執行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe檔案),因為翻譯只做了一次,執行時不需要翻譯,所以編譯型語言的程式執行效率高。

    解釋則不同,解釋性語言的程式不需要編譯,省了道工序,解釋性語言在執行程式的時候才翻譯,比如解釋性basic語言,專門有一個直譯器能夠直接執行basic程式,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就要翻譯一次,效率比較低。

    二、指令碼語言

    ①指令碼語言(JavaScript,VBscript等)介於HTML和C,C++,Java,C#等程式語言之間

    HTML通常用於格式化和鏈結文字。而程式語言通常用於向機器發出一系列複雜的指令。

    ②指令碼語言與程式語言也有很多相似地方,其函式與程式語言比較相象一些,其也涉及到變數。與程式語言之間最大的區別是程式語言的語法和規則更為嚴格和複雜一些。

    注:指令碼語言一般都有相應的指令碼引擎來解釋執行。 他們一般需要直譯器才能執行。JAVASCRIPT,ASP,PHP,PERL都是指令碼語言。C/C++編譯、連結後,可形成獨立執行的exe檔案。

    ④指令碼語言是一種解釋性的語言

    例如vbscript,javascript,installshield script等等,它不象c/c++等可以編譯成二進位制程式碼,以可執行檔案的形式存在。指令碼語言不需要編譯,可以直接用,由直譯器來負責解釋,不過每次都需要翻譯,執行速度慢。

    ⑤指令碼語言一般都是以文字形式存在,類似於一種命令

    舉個例子說,如果你建立了一個程式,叫aaa.exe,可以開啟.js為副檔名的檔案。

    你為.js檔案的編寫指定了一套規則(語法),當別人編寫了.js檔案後,你的程式用這種規則來理解編寫人的意圖,並作出迴應.那麼,這一套規則就是指令碼語言。

  • 3 # Lycrus

    是否是指令碼語言你可以看是否有REPL,也就是read-eval-print-loop。要實現這種機制需要2個支援。1是必須是鬆散語言~比如你啟動他們的控制檯然後讓python或者JavaScript打出一個helloworld 我想誰都會,但是你有定義明確的類-物件,明確的函式-返回值,明確的函式入口點main麼?顯然沒有,但是非指令碼語言就是必須的,哪怕他的語法看上去再親人再像自然語言。2是要實現這種這種可以即時互動的機制,解釋語言比編譯語言更加合適,為什麼就不說了,去找解釋語言和編譯語言的相關知識。你沒有見過java控制檯手動輸入一行程式碼列印helloworld吧。當然 java和c都有類似的模擬~我不想告訴你他們的名字因為這樣會混淆你~而且也不是一種好的用法~但這種模擬改變不了他們的本質

  • 4 # 紅塵匆匆過客夢

    不等同,指令碼語言基本全是解釋語言,但解釋語言除了指令碼,還包括其它(比如解釋型basic語言),而c#和java這種強型別的編譯語言也含有解釋部分(clr執行庫jvm虛擬機器)

  • 5 # 又在釣魚島釣魚

    當然不等於≠!

    解釋語言是在執行前有一個把文字指令翻譯成機器指令的過程!也就是執行程式碼在一個程序中!專門需要一個語言直譯器來負責翻譯過程!而指令碼語言是在執行前先查詢文字對應的命令,找到之後建立一個程序,在新的程序裡執行對應的命令,執行過程有作業系統環境參與!過程就和手動輸入那個命令一樣!指令碼語言就是把應該由人直接輸入的命令放進文字檔案裡,按一定邏輯執行的序列!

  • 中秋節和大豐收的關聯?
  • 公主日記的主要內容是什麼?