語言編譯用vc還是gc
1. 請問如何用VC++的編譯器編譯C的程序
啟動VC++6.0新建一個Win32 Console Application工程,建好後,新建-文件-C++ source File,在頭部加上
#include <stdio.h>
#include <stdlib.h>
然後就可以編譯c語言寫的了
2. C語言和C++的區別,難易程度!
C語言和C++語言目前依然有廣泛的應用前景,從語言自身的角度來說,C語言屬於面向過程的編程語言,而C++則是面向對象的編程語言。
對於零基礎的初學者來說應該從C語言開始學起,原因有以下幾點:
第一:C語言語法結構相對簡單。C語言屬於面向過程的編程語言,語言自身的語法結構比較清晰,而C++屬於面向對象的編程語言,C++有較高層次的抽象(類、對象、封裝、繼承、多態等),所以在概念的理解上會有一定的難度。
第二:C++與C語言之間有較強的繼承關系。C++語言是一個在C語言基礎之上發展起來的編程語言,在語法結構上也有較強的關聯性,可以說C++語言是C語言的增強版(面向對象版本),所以掌握C語言之後可以遷移到C++語言。
第三:C語言目前的使用普及度要強於C++語言。C語言雖然經過了多年的發展,但是C語言目前依然有大量的用戶,在物聯網、容器開發(各種網路伺服器)、操作系統等領域,C語言都有一定的優勢,可以說與底層服務關聯密切的開發中,C語言能提供一個穩定的解決方案。
對於編程語言的初學者來說,通常情況下需要系統的學習一下操作系統的體系結構,比如系統的學習一下linux操作系統就是一個不錯的選擇。目前C或者是C++語言與Linux系統的結合比較緊密,C語言的開發場景中往往都會伴隨著Linux操作系統。
而Linux操作系統的內核代碼大部分都是採用C語言編寫的,掌握C語言之後可以通過閱讀Linux系統的源代碼來深入的掌握操作系統的體系結構,不少計算機專業的學生都有過讀Linux系統源代碼的經歷,從這個角度來說,從C語言開始學起是比較不錯的選擇。
學習C語言也好,學習C++也罷,都需要做大量的實驗,通過實驗來建立概念的畫面感。
3. 易語言怎麼編寫遠程式控制制啊像灰鴿子的那種!最好有源代碼!
gh0st遠控軟體採用驅動級RESSDT過主動,svchost參數啟動,替換系統服務的方式工作的,工作方式較為先進,美中不足的部分是沒有進行驅動級或用戶級隱藏,當然這部分可以添加進去。編碼利用了VC的編程環境。
一、環境配置
編譯環境一定要配置好:DDK+SDK+VC6,DDK用來編譯sys文件的,SDK+VC6是用來編譯工程的,配置部分比較簡單,網上有很多資料,這里不再詳述,有興趣的朋友也可以查看DDK和SDK的相關幫助。
二、特徵碼定位簡述
殺毒軟體查殺木馬的原理基本是根據特徵查殺的,被查殺的部分我們稱之為特徵碼,所以我們可以利用特徵碼定位工具MyCLL定位出病毒的特徵碼位置,定位工具原理是將被掃描木馬分塊,利用分段填充的方式,匹配殺軟的特徵值,找到殺軟查殺病毒的位置。
定位出特徵碼,如何反向找到源碼中的對應位置呢?請看下面分析,
三、二進制文件與源碼定位之map文件利用
map文件是二進制和源碼之間對應的一個映射文件。
我們假設根據第三步我們定位出了病毒的特徵碼:
病毒名稱 特徵碼位置 內存地址
svchost.dll 000038AA_00000002 100044AA
svchost.dll 00005F98_00000002
第一步設置VC編譯環境生成Map文件。
在 VC 中,點擊菜單「Project -> Settings」選項頁(或按下 Alt+F7),選擇 C/C++ 選項卡,並在最下面的 Project Options 裡面輸入:/Zd ,然後要點擊 Link 選項卡,選中「Generate mapfile」復選框,並在最下面的 Project Options 裡面輸入:/mapinfo:lines,表示生成 MAP 文件時,加入行信息。設置完成。
第二步編譯VC工程,設置活動工程編譯即可,這個不用說明。這個步驟完成後,在release(或debug)目錄,多了一個.map文件(比如svchost.map)。
第三步打開map文件(用UE或文本編輯器打開都行),形式如下:
(begin)
Timestamp is 488fcef2 (Wed Jul 30 10:16:18 2008)
Preferred load address is 10000000
---------------------------------------------------------------------------1----(為方便說明,wrw添加)
Start Length Name Class
0001:00000000 00010a50H .text CODE
0001:00010a50 00000485H .text$x CODE
0002:00000000 000004c8H .idata$5 DATA
......
0003:00000010 00000004H .CRT$XIZ DATA
0003:00000020 00001a50H .data DATA
0003:00001a70 00000688H .bss DATA
0004:00000000 000000a8H .rsrc$01 DATA
0004:000000b0 00000cf0H .rsrc$02 DATA
----------------------------------------------------------------------------2---(為方便說明,wrw添加)
Address Publics by Value Rva+Base Lib:Object
0001:00000000 ??0CAudio@@QAE@XZ 10001000 f Audio.obj
0001:000000d0 ??_GCAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000d0 ??_ECAudio@@UAEPAXI@Z 100010d0 f i Audio.obj
0001:000000f0 ??1CAudio@@UAE@XZ 100010f0 f Audio.obj
0001:000001e0 ?getRecordBuffer@CAudio@@QAEPAEPAK@Z 100011e0 f Audio.obj
0001:00000240 ?playBuffer@CAudio@@QAE_NPAEK@Z 10001240 f Audio.obj
0001:000002c0 ?InitializeWaveIn@CAudio@@AAE_NXZ 100012c0 f Audio.obj
......
0001:00003310 ?SendToken@CFileManager@@AAEHE@Z 10004310 f FileManager.obj
0001:00003320 ?UploadToRemote@CFileManager@@AAE_NPAE@Z 10004320 f FileManager.obj
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
0001:00003670 ?StopTransfer@CFileManager@@AAEXXZ 10004670 f FileManager.obj
0001:00003730 ?CreateLocalRecvFile@CFileManager@@AAEXPAE@Z 10004730 f FileManager.obj
......
----------------------------------------------------------------------------3---(為方便說明,wrw添加)
Line numbers for .\Release\FileManager.obj(E:\vtmp\gh0st3src\Server\svchost\common\FileManager.cpp) segment .text
17 0001:00002630 20 0001:0000267f 21 0001:00002698 24 0001:000026d0
25 0001:000026f8 26 0001:0000273c 29 0001:000027d0 33 0001:000027ee
77 0001:000027f8 36 0001:000027fb 37 0001:00002803 77 0001:0000280d
......
532 0001:0000340f 534 0001:00003414 537 0001:00003428 540 0001:00003440
546 0001:0000345d 547 0001:00003487 548 0001:00003490 549 0001:00003492
551 0001:0000349e 552 0001:000034b8 553 0001:000034cb 554 0001:000034d4
558 0001:000034de 560 0001:000034e9 563 0001:000034ee 564 0001:00003506
......
(end)
我們看下,定位svchost.dll 的第一個特徵碼內存地址為:100044AA,在第2塊中,我們可以找到RVA+BASE與之很接近的是
0001:00003440 ?FixedUploadList@CFileManager@@AAE_NPBD@Z 10004440 f FileManager.obj
這樣我們可以定位到FileManager.cpp中的FixedUploadList函數,是不是范圍縮小了?
下面我們再縮小代碼行
利用這個公式:特徵碼行偏移 = 特徵碼地址(Crash Address)- 基地址(ImageBase Address)- 0x1000
看起來好像很難,其實很簡單,我們將100044AA去掉內存基址10000000,再減1000,因為PE很多從1000開始,可以得到代碼偏移地址為34AA。到第3塊中找對應的代碼行。
偏移地址34AA在(551 0001:0000349e 552 0001:000034b8 )中間,也就是551行和552行中間,我們到源程序中查找第551行:
wsprintf(lpszFilter, "%s%s*.*", lpPathName, lpszSlash);
這樣就定位出源代碼了,要怎麼修改就怎麼修改它就可以了。
四、實戰免殺
A、卡巴免殺
首次編譯後,先做卡巴的免殺。卡巴殺sys文件和dll,當然也就殺包裝它們的install.exe,最後卡巴還殺生成的sever,我這里說殺生成好的server不是和前面的特徵碼重疊的地方,而是殺配置信息。
第一步、sys免殺
sys重新編譯後,增加了輸入表的函數,同時系統不同,造成很多地方不同於原特徵,順利通過卡巴、金山、小紅傘等殺軟。
第二步、svchost.dll免殺
特徵碼定位MultiByteToWideChar和"gh0st update"兩個位置。這里是通過第3步map文件得出的。
卡巴怕加花指令, 這個函數MultiByteToWideChar的調用上,可以在這個函數前面隨便加幾句無效語句就可以通過卡巴殺軟。
字元串調用"gh0st update" ,這個是用於更新用的 ,如果不要在線更新,直接把這個語句所在代碼塊刪除;嘿嘿,其實搜索工程替換這個字元串為其他的字元串就可以了^_^,這個方法同時可以過金山殺軟。
第三步、server免殺
卡巴定位在最後的配置信息,採取跳轉顯然是不行的,採用加花的辦法,在寫入AAAAAA配置信息之前,隨便寫些東西,就可以做server免殺。
卡巴免殺完成!
B、Avast免殺
最新的avast殺軟再查殺1下,殺install.exe和svchost.dll(也就是殺生成的文件和其中的資源文件),接著做它的源碼免殺。
定位在特徵字元串%02d/%02d/%02d和「SYSTEM\CurrentControlSet\Services\%s」兩個地方。
解決方案:
1、svchost.dll的特徵碼定位在鍵盤記錄KeyboardManager.cpp文件中的SaveInfo(char *lpBuffer)函數。特徵字元串%02d/%02d/%02d,也就是我們看到鍵盤記錄的日期,修改之,修改的方法很多,將其改為[%d/%d/%d %d:%d:%d] ,編譯即可通過avast殺軟。
2、install的特徵碼定位在「SYSTEM\CurrentControlSet\Services\%s」,對應文件是install.cpp里的InstallService函數,修改大小寫,編譯即可通過免殺。
五、添加垃圾代碼的小方法
垃圾代碼要移動特徵碼所在的位置,不要跑到堆棧中了,這樣的代碼沒有用。可以採取添加for循環,做計數,簡單統計,採用局部變數,不改變後面的邏輯為宜。
添加輸出表的方法:
有殺輸出表的,可以在生成的svchost.dll上添加空函數 ,但是每次編譯都要修改1次資源 ,其實我們在源碼上添加如下語句:
extern "C" __declspec(dllexport) bool JustTempFun();//聲明
……
extern "C" __declspec(dllexport) bool JustTempFun() //實現
{
return false;
}
編譯後,輸出表就被改變了,有的殺軟就可做到代碼免殺。
六、gh0st自動生成6to4ex.dll的修改
看到好多站友提問自動生成6to4ex.dll的問題,有熱心站友也提出了自己的見解 ,我感覺有些人提出的解決方案不完全正確,有可能造成剛入手人誤解,我根據自己的理解說明1下。
gh0st服務端是通svchost -netsvcs啟動的,所以程序要利用netsvcs 服務,服務端也就是根據netsvcs生成的,故不能說服務端生成是隨機的,相對於大多數系統來講,基本是固定的,下面看分析。
查看install.cpp裡面的InstallService()方法,首先遍歷HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Svchost中的服務項,查找到一個服務後,程序採取替換服務的方法,將原服務刪除,然後生成對應服務項+ ex.dll的文件替換原服務,6to4服務一般排在第一位,6to4服務是一種自動構造隧道的方式,作用在於只需要一個全球惟一的IPv4地址便可使得整個站點獲得IPv6 的連接,這個服務對一般人來講,基本閑置,所以我們的程序就把6to4服務給替換掉,同時在windows\system32\目錄下生成 6to4ex.dll,以後啟動就是6to4ex了,如果把這個服務跳過去,就依次向下生成Ias、Iprip等服務啦,如果netsvcs項沒有可以替換的服務,則程序將自己添加1個服務,名稱就是由 AddsvchostService()方法產生的netsvcs_0x%d。
這樣說不知道關心服務名稱的明白了不?
這個不能說是技術問題,但是小技巧問題可以從這里產生,我不知道其他人的360是怎麼過的,但是我覺得可以提示1下的是,如果是360默認系統安全的服務,它肯定不會報不安全,替換閑置的系統安全的服務則通過360的效果要好的多
本文來自: 華夏黑客同盟論壇 本文詳細地址:http://bbs.77169.com/read.php?tid=255676
4. 學C語言現在最好用的編程軟體
Turbo C就可以的。編輯文本的時候可以用utraledit
至於vc++之類的我是不推薦初學者使用的
5. 用文本文檔編寫的一個c語言程序應該如何運行
1、文本當然沒法運行了,只有經過編譯的才能生成exe文件,只有exe文件才是可運行的。
下個visul c++, 或 VS 2010 或turbo C 都是編譯用的。
2、使用C編譯器編譯為可執行文件。
常見的編譯器有MSC、VC、TC、BC、BCB、GCC、GC等等。
C語言是不能解釋運行的,必須先編譯為可執行文件。
6. 請問哪裡有windows平台C++的bitcoin源代碼下載,我想用VC來編譯。
很多朋友都知道如何在linux平台如何編譯比特幣程序,但是,到了windows平台,
就會感覺到無從下手. 其實, 比特幣程序是跨平台的.
你要編譯windows版的比特幣程序,基本上有兩種方法,一種是在linux平台
(推薦ubuntu 13.10)通過交叉編譯的方法來編譯.另外一種,就是直接在windows平台編譯.
我想,你既然要在windows平台使用,我就詳細介紹一下如何在windwows平台編譯比特幣程序.
我的平台:windows7
第一步:安裝變編譯環境QT和MINGW,msys
1、msys是一個在windows平台模擬shell的程序。
下載安裝程序之後,通過安裝管理程序,按安裝以下內容:
From MinGW installation manager -> All packages -> MSYS
選中以下安裝包
msys-base-bin
msys-autoconf-bin
msys-automake-bin
msys-libtool-bin
點 apply changes開始安裝。他會自動下載安裝好。
需要注意的是,確保不要安裝msys-gcc和msys-w32api ,因為這兩個包和我們的編譯系統發生沖突。
很多人出現一些莫名其妙的問題,就是因為這兩個包。
2、安裝 MinGW-builds
下載並解壓縮 i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z 到C盤根目錄 C:\
注意我的目錄結構。你盡量和我一樣。
3、設置PATH環境變數,將C:\mingw32\bin;添加到第一個。
4、在命令行模式下輸入 gc -v 會得到以下內容
c:\gcc -v
Using built-in specs.
COLLECT_GCC=c:\mingw32\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.8.2/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../src/gcc-4.8.2/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --with-sysroot=/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32 --with-gxx-include-dir=/mingw32/i686-w64-mingw32/include/c++ --enable-shared --enable-static --disable-multilib --enable-languages=ada,c,c++,fortran,objc,obj-c++,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-sjlj-exceptions --with-dwarf2 --disable-isl-version-check --disable-cloog-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-mpfr=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-mpc=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-isl=/c/mingw482/prerequisites/i686-w64-mingw32-static --with-cloog=/c/mingw482/prerequisites/i686-w64-mingw32-static --enable-cloog-backend=isl --with-pkgversion='i686-posix-dwarf-rev3, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include -I/c/mingw482/prerequisites/i686-zlib-static/include -I/c/mingw482/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -I/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/include -I/c/mingw482/prerequisites/i686-zlib-static/include -I/c/mingw482/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw482/i686-482-posix-dwarf-rt_v3-rev3/mingw32/opt/lib -L/c/mingw482/prerequisites/i686-zlib-static/lib -L/c/mingw482/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware'
Thread model: posix
gcc version 4.8.2 (i686-posix-dwarf-rev3, Built by MinGW-W64 project)
至此,你的開發環境已經搭建好了,很簡單吧
第二部分:下載bitcoin引用的外部庫
我們把它們全部放在 C:\deps目錄下
2.1 安裝OpenSSL
進入啟動 MinGw shell 比如目錄:(C:\MinGW\msys\1.0\msys.bat)運行這個msys.bat,就會啟動一個shell環境,提示符是$
輸入命令
cd /c/deps/
tar xvfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
Configure no-shared no-dso mingw
make
等待幾分鍾後,就把openssl編譯好了。
2.2 下載Berkeley DB
我們推薦使用 4.8版本
同樣在msys shell環境下輸入以下命令
cd /c/deps/
tar xvfz db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
../dist/configure --enable-mingw --enable-cxx --disable-shared --disable-replication
make
等待編譯
2.3 安裝Boost
msys命令:
cd C:\deps\boost_1_55_0\
bootstrap.bat mingw
b2 --build-type=complete --with-chrono --with-filesystem --with-program_options --with-system --with-thread toolset=gcc variant=release link=static threading=multi runtime-link=static stage
2.4 安裝Miniupnpc
cd C:\deps\miniupnpc
mingw32-make -f Makefile.mingw init upnpc-static
msys shell命令
cd /c/deps/protobuf-2.5.0
configure --disable-shared
make
2.6 qrencode:
命令
cd /c/deps/libpng-1.6.10
configure --disable-shared
make
LIBS="../libpng-1.6.10/.libs/libpng16.a ../../mingw32/i686-w64-mingw32/lib/libz.a" \
png_CFLAGS="-I../libpng-1.6.10" \
png_LIBS="-L../libpng-1.6.10/.libs" \
configure --enable-static --disable-shared --without-tools
make
2.7 安裝 Qt 5 庫
下載和解壓縮
在 windows命令行輸入:
set INCLUDE=C:\deps\libpng-1.6.10;C:\deps\openssl-1.0.1g\include
set LIB=C:\deps\libpng-1.6.10\.libs;C:\deps\openssl-1.0.1g
cd C:\Qt\5.2.1
configure.bat -release -opensource -confirm-license -static -make libs -no-sql-sqlite -no-opengl -system-zlib -qt-pcre -no-icu -no-gif -system-libpng -no-libjpeg -no-freetype -no-angle -no-vcproj -openssl-linked -no-dbus -no-audio-backend -no-wmf-backend -no-qml-debug
mingw32-make
set PATH=%PATH%;C:\Qt\5.2.1\bin
cd C:\Qt\qttools-opensource-src-5.2.1
qmake qttools.pro
mingw32-make
3. 下載Bitcoin 0.9.1
在msys shell下輸入以下命令行:
cp /c/deps/libpng-1.6.10/.libs/libpng16.a /c/deps/libpng-1.6.10/.libs/libpng.a
cd /c/bitcoin-0.9.1
./autogen.sh
CPPFLAGS="-I/c/deps/boost_1_55_0 \
-I/c/deps/db-4.8.30.NC/build_unix \
-I/c/deps/openssl-1.0.1g/include \
-I/c/deps \
-I/c/deps/protobuf-2.5.0/src \
-I/c/deps/libpng-1.6.10 \
-I/c/deps/qrencode-3.4.3" \
LDFLAGS="-L/c/deps/boost_1_55_0/stage/lib \
-L/c/deps/db-4.8.30.NC/build_unix \
-L/c/deps/openssl-1.0.1g \
-L/c/deps/miniupnpc \
-L/c/deps/protobuf-2.5.0/src/.libs \
-L/c/deps/libpng-1.6.10/.libs \
-L/c/deps/qrencode-3.4.3/.libs" \
./configure \
--disable-upnp-default \
--disable-tests \
--with-qt-incdir=/c/Qt/5.2.1/include \
--with-qt-libdir=/c/Qt/5.2.1/lib \
--with-qt-bindir=/c/Qt/5.2.1/bin \
--with-qt-plugindir=/c/Qt/5.2.1/plugins \
--with-boost-system=mgw48-mt-s-1_55 \
--with-boost-filesystem=mgw48-mt-s-1_55 \
--with-boost-program-options=mgw48-mt-s-1_55 \
--with-boost-thread=mgw48-mt-s-1_55 \
--with-boost-chrono=mgw48-mt-s-1_55 \
--with-protoc-bindir=/c/deps/protobuf-2.5.0/src
make
strip src/bitcoin-cli.exe
strip src/bitcoind.exe
strip src/qt/bitcoin-qt.exe
這樣,你就得到了變異好的 bitcoin-cli.exe和bitcoind.exe ,bitcoin-qt.exe(windows QT圖形界面的錢包軟體)
7. vc與gc和tc
TC太舊了,不懷疑,VC是一個相對較新的集成VC VS最新版本的。
你應該要學習C + +,不建議使用TC。 。 DOS環境下運行,界面,幫助,調試是非常不方便的。 VC更加強大。
8. 編程都有哪些語言
幾種常用編程語言簡單介紹
1.c語言
是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,始於編寫程序軟體,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統開發。
優點:簡潔緊湊,靈活方便,運算符豐富,數據類型豐富,c是結構式語言,語法限制不太嚴格,程序設計自由度大,生成目標代碼質量高,程序執行效率高。
缺點:沒有面向對象編程功能(OOPs),運行時類型檢查是不可用,C不能夠在一個范圍內再次使用相同的變數名,構造函數和析構函數不可用,必須通過方法或者以其他方式來手動實現變數的析構和構造。
2.c++
是在c語言的基礎上開發的一種面向對象編程語言,應用廣泛。它的主要特點表現在兩個方面:一是盡量兼容c,二是支持面向對象的方法。它操持了c簡潔,高效的接近匯編語言等特點,對c的類型系統進行了改革的擴充。
應用領域:游戲,科學計算,網路軟體,分布式應用,操作系統,設備驅動程序,移動設備,嵌入式系統,教育與科研,部分行業應用,其他應用。
3.c#
是微軟對這一問題的解決方案。C#是一種最新的、面向對象的編程語言。
主要特點:簡單,現代,面向對象的,類型安全,相互兼容性,可伸縮性和可升級性。
主要領域:web應用,客戶端應用,分布式計算,人工智慧,各類游戲。
4.visual 語言
一種直譯式程序設計語言。名稱字面為意思「初學者的全方位符式指令代碼」,設計給初學者使用的編程語言,在完成編寫後不須經由編譯及鏈接等手續,經過解釋器即可運行,但如果需要單獨運行時仍然需要將其創建成可執行文件。
特點:(1)面向對象和可視化的程序設計。
(2)事件驅動的運行機制。
(3)結構化的程序設計語言。
(4)多種資料庫訪問能力。
(5)提供了功能完備的應用程序集成開發環境。
(6)方便使用的聯機幫助功能。
5.perl 語言
是一種解釋型的腳本語言。Perl語言由Larry wall干1986年開發成功。當初的目的主要是在Unix環境下,用於處理面向系統任務而設計的腳本編程語言。Perl對文件和字元有很強的處理、變換能力,它特別適用於有關系統管理、資料庫和網路互聯以及WWW程序設計等任務,這樣使得Perl稱為系統維護管理者和CGI編制者的首選工具語言。
特點:
1. Perl的解釋程序是開放源碼的免費軟體,使用Perl不必擔心費用。
2. Perl能在絕大多數操作系統運行,可以方便地向不同操作系統遷移。
3. Perl 是一種能完成任務的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。
6.java
是一門面向對象編程語言,不僅吸收了c++語言的各種優點,還摒棄了c++里難以理解的多繼承,指針等概念,因此java語言具有功能強大和簡單易用兩個特徵。java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
特點:簡單性,面向對象,分布性,編譯和解釋性,穩健性,安全性,可移植性,高能性,多線索性,動態性。
應用:android應用,在金融業應用的伺服器程序,網站,嵌入式領域,大數據技術,高頻交易的空間,科學領域。
7.Objective-C
通常寫作ObjC或OC和較少用的Objective C或Obj-C,是擴充C的面向對象編程語言。它主要使用於Mac OS X和GNUstep這兩個使用OpenStep標準的系統,而在NeXTSTEP和OpenStep中它更是基本語言。
特點:1、動態運行環境,適合UI編程
在Objective-C中,如下語法並非單純的函數調用,而是向某對象發送消息。
2、方便與C/C++混合使用
Objective-C中的C擴展部分,使用符號@開頭。比如@class、@interface、@"Hello,World"。而它的消息發送語法則是使用中括弧而不是圓括弧。
3、運行速度相對較快
Objective-C編譯後是機器原生指令,運行時環境也小而緊湊。它採用引用計數的內存管理方式,並引入ARC。ARC比GC更容易引起編程錯誤,但卻比GC快。而在性能很重要的場合,Objective-C也很容易直接調用C/C++代碼。相對於其他使用虛擬機、採用GC以及間接調用C/C++的移動平台,速度優勢非常明顯。
應用:ios操作系統,ios應用程序,mac os x操作系統,mac osx上的應用程序。
8.PHP
是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
特點:
1. PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。
2. PHP可以比CGI或者Perl更快速的執行動態網頁——動態頁面方面,與其他的編程語言相比,
PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成htmL標記的CGI要高許多;
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現。
3. PHP支持幾乎所有流行的資料庫以及操作系統。
4. 最重要的是PHP可以用C、C++進行程序的擴展!
9.python
是一種面向對象的解釋型計算機程序設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。
Python是純粹的自由軟體, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議 。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。
特點:簡單,易學,速度快,免費、開發,高層語言,可移植性,解釋性,面向對象,可擴展性。
應用:
系統編程,圖形處理,數學處理,文本處理,資料庫編程,網路編程,多媒體應用,pymo引擎,黑客編程。
10.ruby
是一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發,遵守GPL協議和Ruby License。它的靈感與特性來自於Perl、Smalltalk、Eiffel、Ada以及Lisp 語言。
優點
語法簡單,普通的面向對象功能(類,方法調用等),特殊的面向對象功能(Mixin,特殊方法等,操作符重載,錯誤處理功能迭代器和閉包,垃圾回收,動態載入,可移植性高。