當前位置:首頁 » 編程軟體 » 開發與編譯

開發與編譯

發布時間: 2023-02-01 09:12:58

『壹』 開發與運行java程序需要經過的三個主要步驟是

創建Java源程序
Java源程序一般用java作為擴展名,是一個文本文
件,用Java語言寫成,可以用任何文本編輯器創建
與編輯;
編譯源程序
Java編譯器,「javac」,讀取你的Java源程序並翻譯
成Java虛擬機能夠明白的指令集合,且以位元組碼的
形式保存在文件中。通常,位元組碼文件以class作為
擴展名;
運行class(位元組碼)文件
Java解釋器讀取位元組碼,取出指令並且翻譯成計算
機能執行的代碼,完成運行過程;

『貳』 用來學習安卓開發和編譯,最好使用哪個系統深度操作系統可以嗎求推薦

哪個系統都行,主要是系統盡量把不必要的服務都關了,以免跑Android模擬器時變得很慢

『叄』 編譯器和開發環境的關系

談談程序設計語言、編譯器和開發環境之間的關系

許多初學者都會對這三個概念區分不清,應該說這三個概念是完全不同的,不能混為一談。在本文中,我就盡我最大的能力來講講這三個概念以及他們之間的關系。

首先說程序設計語言,它同人類的自然語言一樣也是一個語言,並且它是自然語言的一個子集。大家都知道自然語言是極其龐大和復雜的系統,具有很多不不確定性和不精確性,因此至今我們也沒有辦法對自然語言進行形式化的描述。程序設計語言只是自然語言的一個很小的子集,在計算機系統中,一切都是需要確定性和精確性的描述,因此程序設計語言也是極為規范的,在程序設計語言中,幾乎就不允許存在不確定性和不精確性,也就是說不能存在文法的二義性。這樣一個程序設計語言就可以通過一系列的產生式來進行形式化的描述,這一系列的產生式就被稱為文法,語言就是由文法來定義的。從另外一個角度來說,一個程序設計語言,它僅僅是一個語言,它只對程序進行形式上的要求。或者說,程序設計語言對應於編程中的編碼階段。我們有必要對程序開發的三個階段進行了解,程序開發從時間先後順序上可以分為三個階段:1.編碼階段,2.編譯階段,3.運行階段。在編碼階段,我們使用的就是程序設計語言。語言除了定義了文法以外,其他的任何事情他都不做。當然一種語言也有很多種版本,比如 BASIC 語言,就有很多種版本,c語言也是如此。這里所講的語言的版本與編譯器的版本是不一樣的。C語言的標准版本就是 ANSI C,如果初學者會提出這樣的問題「C語言哪個更好?」,這樣的問題反映出他們對語言與編譯器之間的關系的認識的不足。如果從語言的角度來講 VC 和 TC 是沒有多大區別的,他們基本上都能支持 ANSI C。

再來看看編譯器。編譯器與語言的關系就是,翻譯者與語言的關系。編譯器就是一個翻譯,他把使用某種語言書寫的源程序,翻譯成為等價的使用目標語言書寫的目標程序。前面我們也說了,語言是一個抽象的概念,是由文法來定義的。唯一實在的東西,也就是定義語言的文法。在使用語言時,我們只能說,使用這種語言去書寫一段程序。編譯器則是能夠將某種語言的源程序進行翻譯,然後生成目標程序。我們通常會說,某個編譯器支持了什麼語言,也就是說這個編譯器能識別並翻譯這種語言。現在的C編譯器,一般都是支持了 ANSI C 語言的,另外,編譯器的設計者可能還會對 ANSI C 進行一定的擴充,而且各個編譯器進行擴充功能都是不同的,因此可能就會出現一個編譯器誕生以後,就會出現一個新的語言的現象。TC 和 VC 就分別對 ANSI C 進行了不同的擴充,比如在 TC 中有 far 等關鍵字,ANSI C 中是沒有的,在 VC 中有內嵌匯編的語法 _asm,而在 TC 中則是使用 asm 關鍵字,這些內容在 ANSI C 中沒有的。編譯器的輸入時源程序,而其輸出則是目標程序。一般情況下,源程序是使用某種高級語言書寫的,而目標程序則是某個特定機器的機器語言程序。另一方面,編譯器除了提供編譯功能,還會提供一些運行庫。所謂運行庫就是由一些事先寫好的子程序所組成的子程序庫。例如C語言中的 printf 函數,就是由C的運行庫提供的。在 ANSI C 中定義了一些C語言的標准庫函數,這些庫函數是標准C必須具備的,也可以說這些庫函數成為了 ANSI C 的一個部分。另外,不同的編譯器還可以提供自己的,非標準的庫給用戶使用,在 TC 中的 Graphics 庫,其實就是由 TC 提供的,它不是屬於 ANSI C 的。簡單的說,編譯器是由編譯程序和運行庫組成的。在程序的編譯階段,就是使用編譯器對源程序進行編譯生成目標程序。

在程序的運行階段則是在一個特定的平台上,由這個平台來執行編譯生成的程序。Java 虛擬機是一個平台,DOS 和 Windows 也是平台,編譯器的作用就是溝通源程序和程序的運行平台。源程序相對於一個運行平台來說是不可識別的,但當編譯器將源程序編譯成為這個平台所能夠識別的目標語言以後,程序就可以在這個平台上運行了。

應該看到,編譯器在其中起到了很重要的作用。我們現在可以明確一些概念了,程序設計語言只是語言,它本身很難說有什麼好壞,這就如同說「漢語和英語哪個好」一樣。使用某一種程序設計語言,我們可以書寫自己的程序,從而向計算機表達自己希望完成的功能。這個階段,我們稱為編碼階段。編譯器由編譯程序和運行庫組成,編譯程序負責將源程序翻譯成為目標程序,運行庫提供了一些基本的子程序給程序編寫者使用。我們可以說編譯器是否支持某種語言,例如 TC 編譯器是支持 ANSI C 的,而 GCC 則是一個能夠支持多種語言的編譯器。然而不同的編譯器除了提供對某種語言的支持以外,還可能對該語言進行了某些功能擴充。編譯器在對語言的支持上,差別都是不太大的,這是因為許多語言都制定了一個標准,例如 ANSI C。編譯器的另外一個重要特性,就是對運行平台的支持。平台指的是一個程序運行所需要的所有軟體和硬體的基礎。編譯器對運行平台的支持,是通過將源程序編譯成為目標程序,以及編譯器所提供的運行庫來實現的。例如,TC只能將C源程序編譯生成,使用 80x86 CPU,操作系統為 DOS 的 16bit DOS 程序。VC只能將C源程序編譯生成 80x86 CPU、操作系統為 Windows 的 32bit Windows 程序。使用編譯器對源程序進行編譯被稱為編譯階段,這個階段編譯程序將源程序編譯為某個平台的目標代碼。程序在具體的平台上運行時,被稱為運行階段。應該指出,在編碼階段使用到的是程序設計語言,以及編譯器所提供的庫函數,這個階段產生的是源程序。在編譯階段使用的是源程序和編譯器,這個階段產生的是目標程序。在運行階段使用到的是目標程序和運行平台,這個時候產生的是程序運行結果。

因此說討論一個程序設計語言好壞沒有多大意義,因為他們使用的場合不同,比如匯編語言和 Java 語言,要談論這兩個語言的好壞是沒有實際意義的。而說「C語言哪個好」之類的話也是沒有意義的,我想大家學的C也就是在 ANSI C 基礎上的C,並且不同的C語言之間的差別是極小的。我們通常指的 TC、VC 都是指編譯器,而不是語言。編譯器能夠支持一種或者多種的程序設計語言,TC 能夠支持 ANSI C,VC 能夠支持 ANSI C 和 ANSI C++,而 GCC 則是一個支持多語言的編譯器。如果真要說 VC 比 TC 好,只能說 VC 編譯器提供的庫函數更多,並且 VC 能夠支持的平台是 Windows,而 VC 編譯出來的代碼也都是 32bit 的。

在以上概念中糾纏了這么久,我也不再想多說了。再來看開發環境。為了能夠方便程序設計者進行編碼、調試等工作,編譯器製造商在製作好一個編譯器以後,都會提供一個集成開發環境(又稱為IDE)。在這個 IDE 中,用戶可以完成編碼、編譯、調試、運行的全部工作。並且在最新的IDE中,可能還會提供一個可視化的設計功能,可以方便用戶進行程序界面的設計。例如 VB 等。另外一個方面,開發環境除了包括 IDE 以外,還包括了程序運行的平台。比如硬體是 IBM PC 兼容機,操作系統是 Windows 等。

可能,能講的也就這么多了,感覺講的並不是很好,不過我已經盡力了。有些東西是很難說清楚的,「只能意會不可言傳」指的就是這個了。不要怪我講的不好,還是自己用心去理解和體會吧。

『肆』 高級語言程序設計:語言本身,編譯系統和開發環境都是什麼關系

tubo C,visual C++都是C語言的編譯系統,這種描述是錯誤的。TC也好,VC也罷,都是開發工具。VC之所以能夠壟斷天下是因為它支持可視化開發,有效提高生產力。 還有C語言是接近低級語言的一個語言,這種描述也是錯誤的。C語言是高級程序設計語言,最接近低級語言的是匯編語言。 TC主要是上個世紀16位應用程序開發的小工具,已經早就過時(20多年前就被淘汰)。如果要用純代碼的方式繪制界面,調用資料庫,這和開發工具沒什麼關系,可以用SDK方式進行開發。用記事本編寫代碼也無妨。

『伍』 apk軟體是用什麼語言編寫和編譯的如何開發滴

apk
APK是AndroidPackage的縮寫,即Android安裝包(anapk)。APK是類似Symbian
Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。
apk文件和sis一樣最終把android
sdk編譯的工程打包成一個安裝程序文件格式為apk。
APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件,Dex是Dalvik
VM
executes的全稱,即Android
Dalvik執行程序,並非Java
ME的位元組碼而是Dalvik位元組碼。一個APK文件結構為:
META-INF
Jar文件中常可以看到
res
存放資源文件的目錄
AndroidManifest.xml
程序全局配置文件
classes.dex
Dalvik位元組碼
resources.arsc
編譯後的二進制資源文件總結下我們發現Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows
Mobile中的PE文件有區別,這樣做對於程序的保密性和可靠性不是很高,通過dexmp命令可以反編譯,但這樣做符合發展規律,微軟的
Windows
Gadgets或者說WPF也採用了這種構架方式。在Android平台中dalvik
vm的執行文件被打包為apk格式,最終運行時載入器會解壓然後獲取編譯後的androidmanifest.xml文件中的permission分支相關的安全訪問,但仍然存在很多安全限制,如果你將apk文件傳到/system/app文件夾下會發現執行是不受限制的。最終我們平時安裝的文件可能不是這個文件夾,而在android
rom中系統的apk文件默認會放入這個文件夾,它們擁有著root許可權。

『陸』 目前的編譯程序如何開發

腳本開發就行。



編譯程序(Compiler,compiling program),也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。

它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。編譯程序的基本功能是把源程序(高級語言)翻譯成目標程序。

但是,作為一個具有實際應用價值的編譯系統,除了基本功能之外,還應具備語法檢查、調試措施、修改手段、覆蓋處理、目標程序優化、不同語言合用以及人-機聯系等重要功能。語法檢查:檢查源程序是否合乎語法。

如果不符合語法,編譯程序要指出語法錯誤的部位、性質和有關信息。編譯程序應使用戶一次上機,能夠盡可能多地查出錯誤。

以上內容參考:網路-編譯程序

『柒』 開發環境,開發工具,編輯器,編譯器的區別

開發環境=
編輯器
=
開發工具.
例如:
vs2005

vs2008

都是開發環境,也叫開發工具.
非要強調的話,編輯器就是你寫代碼的地方.
編譯器
區別就比較大了,
編譯器是用來編譯你寫好的代碼的.
例如:
java的編譯器是
java虛擬機
,它負責處理和編譯你寫的源代碼.
vs的編譯器就是另外的東西了.
打字很辛苦,記得給分哦

『捌』 如何安裝GCC編譯器和開發工具

在CentOS 7和RHEL 7系統上如何安裝Gnu GCC編譯器和相關的工具比如:autoconf,automake,flex, c++編譯器等工具。我們可以通過在centos 或者rhel 7 系統上安裝下面的軟體包來搭建基本的開發環境。

autoconf

automake

binutils

bison

flex

gcc

gcc-c++

gettext

libtool

make

patch

pkgconfig

redhat-rpm-config

rpm-build

rpm-sign
顯示當前系統的yum group,使用下面的命令:

yum group list
命令輸出:

[root@itsprite /]# yum group list
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile

* base: mirrors.btte.net

* extras: mirrors.btte.net

* updates: mirrors.btte.net
Available environment groups:

Minimal Install

Infrastructure Server

File and Print Server

Basic Web Server

Virtualization Host

Server with GUI

GNOME Desktop

KDE Plasma Workspaces

Development and Creative Workstation
Available Groups:

Compatibility Libraries

Console Internet Tools

Development Tools

Graphical Administration Tools

Legacy UNIX Compatibility

Scientific Support

Security Tools

Smart Card Support

System Administration Tools

System Management
Done
安裝GCC和開發環境
輸入下面的命令:

yum group install "Development Tools"
安裝完之後,使用下面的命令來驗證gcc是否安裝成功:

whereis gcc
命令輸出:

[root@itsprite /]# whereis gcc
gcc:/usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc /usr/share/man/man1/gcc.1.gz
輸入下面的命令來查看gcc工具的版本:

[root@itsprite /]# gcc --version
gcc (GCC) 4.8.2 20140120(Red Hat 4.8.2-16)
Copyright (C)2013 Free Software Foundation, Inc.
This is free software; see the source for ing conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
測試GCC編譯器
下面我們使用剛安裝好的GCC編譯器來編譯一個c語言程序.
創建下面的test.c程序:

#include
int main(void){

printf("Hello World!\n");

return0;
}
輸入命令編譯test.c 文件:

gcc test.c -o test
執行編譯後的文件:


./test
Hello World!

『玖』 業余愛好,想把linux的核心源碼進行編譯和開發,請問准備工作我該做些什麼然後應該干什麼

你到底想干什麼?核心編譯和開發?開發什麼?干什麼用?

『拾』 windows下開發並編譯php擴展的方法

現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要准備的軟體有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變數,把已經安裝好的PHP路徑設置為環境變數。在這里,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變數後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這里假設為e:\c_source_code\php-5.2.5
1、修改文件
「PHP源文件目錄/ext/ext_skel_win32.php」,在這里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
'e:\app\cygwin\bin';
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
--extname=<EXT_NAME>,此時會在ext目錄下生成<EXT_NAME>目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
--extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
「ext/<EXT_NAME>」中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入<EXT_NAME>目錄,打開<EXT_NAME>.dsp。
設置VC6工程,
設置菜單「組建」->「移除工程配置」,選中「Win
32
Release_TS」,
設置菜單「工程」,選中「Win
32
Release_TS」
打開Tab「連接」,設置「輸出文件名」中的目錄,
[可選]打開Tab「C/C++」,增加「預處理器定義」「,COMPILE_DL_<EXT_NAME>」(注意全大寫,默認加入的),取消預定義「LIBZEND_EXPORTS」(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是<EXT_NAME>.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經載入進來,已經可以使用這個foo擴展了。

熱點內容
解壓到當前文件夾右鍵 發布:2024-04-26 03:57:08 瀏覽:979
html5android教程視頻下載 發布:2024-04-26 03:09:59 瀏覽:867
伺服器的描述是什麼 發布:2024-04-26 03:08:32 瀏覽:394
個人加密 發布:2024-04-26 03:01:23 瀏覽:521
linuxusbgadget 發布:2024-04-26 02:52:54 瀏覽:304
我的世界空島世界伺服器地址 發布:2024-04-26 01:39:08 瀏覽:248
尼爾機械紀元加密 發布:2024-04-26 01:37:11 瀏覽:868
在控制台輸出sql語句 發布:2024-04-26 01:08:12 瀏覽:432
動畫java 發布:2024-04-26 01:02:40 瀏覽:12
得力文件夾5302 發布:2024-04-26 00:21:32 瀏覽:91