⑴ 網路編程用什麼語言
網路編程這個概念太大了,包括很多東西,需要各種語言。大概給你說一說吧。
傳輸層以下的編程技術,一般來說是用匯編、C語言這一類與底層結合很緊密的編程語言。比如,基本的路由器編程、網路層數據交換技術編程等等。
傳輸層以上的編程技術,基本是在應用級別,幾乎可以使用現代所有高級編程語言和高級編程腳本中涉及網路通信的部分來實現。從機制上來說,可以分為socket編程、XML-RPC編程、REST編程等;從架構上來說,可以分為BS(Browser/Server)編程、CS(Client/Server)編程等等...
各種編程語言對這些分類幾乎都是支持的。但是不同的編程語言在不同的方面有自己的優勢,比如C語言在Socket編程上有最直接的實現;java和.NET等對XML-RPC編程封裝的很好;php、python、Perl等高級腳本語言在實現REST編程上較為簡便;HTML/CSS/Javascript的組合是Browser端編程最常用的方式;等等等等...
⑵ Perl入門教程
2樓真是的,人家還沒入門,你直接整個文件操作幹嘛?
什麼是Perl?
Perl 是一種最初開發用於文本操作的編程語言。現在它能應用於廣泛的任務,包括系統管理、 web 開發、 網路編程、 GUI 開發和更多的普通用途。
這個語言以實用性為目標(易用、高效、完整)寧願失去美麗(小巧、優雅、迷你)。它使用方便,且支持面向過程和面向對象編程,內置強大的文本處理支持,並有世界上最令人印象深刻的第三方模塊的集中營。
運行Perl程序
在Unix命令行運行Perl程序:
perl progname.pl
另一種方法是,把這個放到你的腳本第一行:
#!/usr/bin/env perl
然後用/path/to/script.pl運行。當然,首先得讓它能執行,你得chmod 755 script.pl(Unix下)。
(這里的第一行假設你有env程序。你也可以直接把你的perl解釋器的路徑直接放到第一行,比如#!/usr/bin/perl)
安全保障
默認情況下,Perl非常隨意。為了使它更強健建議每個程序由下列行開始:
1. #!/usr/bin/perl
2. use strict;
3. use warnings;
附加的兩行從perl中捕獲您的代碼中的各種常見的問題。它們檢查不同的事情,所以你需要兩個都加上。一個潛在的問題通過use strict;捕獲,一旦它捕獲到問題,會馬上讓你的程序停止運行。當然使用use warnings;時,僅僅出現警告(就好像命令行的-w選項)並不會停止程序。
基本語法概述
一個Perl腳本或程序包含一條或多條語句。這些語句只需直接寫在腳本中,而不需要像main()這樣的東西作為程序入口。
Perl語句以分別結束:
print "Hello, world";
以星號(#)開始的語句是注釋:
# This is a comment(這是一條注釋)
空白字元會被Perl忽略:
1. print
2. "Hello, world"
3. ;
……引號里的字元串除外:
1. # this would print with a linebreak in the middle
2. print "Hello
3. world";
字元串使用雙引號或單引號:
1. print "Hello, world";
2. print 'Hello, world';
然而,只有雙引號會「插入」變數值和像換行符(\n)這樣的特殊字元(轉義字元):
1. print "Hello, $name\n"; # works fine
2. print 'Hello, $name\n'; # prints $name\n literally
數字不需要引號:
print 42;
你可以使用或省略括弧來傳遞函數的參數。它們只是在偶爾要改變或明確優先順序的時候必須使用。
1. print("Hello, world\n");
2. print "Hello, world\n";
Perl變數類型
Perl有3種主要的變數類型:標量(scalars)、數組(arrays)和哈希(hashes)。
* 標量(Scalars)
一個標量表示只有一個值:
1. my $animal = "camel";
2. my $answer = 42;
標量的值可以是字元串、整數或浮點數,並且Perl會在需要的時候自動轉換。你不需要預先聲明你的變數類型,但是你需要在第一次使用它們的時候,使用my來聲明它們。(這是use strict;所要求的)
標量可以用不用的方式使用:
1. print $animal;
2. print "The animal is $animal\n";
3. print "The square of $answer is ", $answer * $answer, "\n";
有大量的「魔法」標量的名稱看上去像標點或線路噪音。這些特殊的變數用於各種目的。現在你只要知道其中一個,這就是「默認變數」$_。它被許多Perl的函數用作默認的參數,並且它被隱式設置到某些循環結構中。
print; # prints contents of $_ by default(默認列印$_的內容)
* 數組(Arrays)
數組用於表示一些值的列表:
1. my @animals = ("camel", "llama", "owl");
2. my @numbers = (23, 42, 69);
3. my @mixed = ("camel", 42, 1.23);
特殊變數$#array將返回數組最後一個元素的索引:
print $mixed[$#mixed]; # last element, prints 1.23
你可能想使用$#array + 1來得到這個數組的元素個數。別急,這很容易。在Perl預想找到一個標量值的時候(「在標量上下文」),使用@array會得到數組的元素個數:(譯註:「上下文」是Perl很重要的特性之一,請查閱相關文檔或在無憂Perl搜索相關內容)
if (@animals < 5) { ... } #譯註:當@animals數組的元素個數少於5個的時候
當我們從數組獲得元素值的時候,需要使用$,因為我們只要獲取數組里的一個值;你請求一個標量,然後會獲得一個標量。
從數組里獲取多個值:
(譯註:獲取多個值,使用@,因為我們要獲取數組里的幾個值(列表)。)
1. @animals[0,1]; # gives ("camel", "llama");
2. @animals[0..2]; # gives ("camel", "llama", "owl");
3. @animals[1..$#animals]; # gives all except the first element
這叫「數組切片」。
你可以在列表裡幹些有意義的事情:
1. my @sorted = sort @animals;
2. my @backwards = reverse @numbers;
有兩個特殊的數組,一個是命令行傳到你腳本的參數@ARGV;另一個是傳遞給子程序的參數@_。
* 哈希
哈希用來表示鍵/值對:
1. my %fruit_color = ("apple", "red", "banana", "yellow");
你可以使用空白字元和=>操作符來美化上面的代碼:
1. my %fruit_color = (
2. apple => "red",
3. banana => "yellow",
4. );
獲取哈希元素:
1. $fruit_color{"apple"}; # gives "red"
你可以通過keys()和values()來獲取鍵列表和值列表。
1. my @fruits = keys %fruit_colors;
2. my @colors = values %fruit_colors;
哈希沒有特定的內部排序,然而你可以對鍵進行排序來遍歷它。
和特殊的標量、數組一樣,哈希也有特殊的。我們現在只要知道哈希%ENV包括所有環境變數
。
更復雜的數據類型可以使用引用來構造,允許你把列表和哈希放到另一個列表和哈希中。
引用是一個標量值,它可以引用任何其它的Perl數據類型。通過把引用存儲為數組或哈希的元素值,你可以輕松創建列表/哈希中的列表/哈希。
以下示例演示了使用匿名哈希引用實現的兩級哈希結構
1. my $variables = {
2. scalar => {
3. description => "single item",
4. sigil => '$',
5. },
6. array => {
7. description => "ordered list of items",
8. sigil => '@',
9. },
10. hash => {
11. description => "key/value pairs",
12. sigil => '%',
13. },
14. };
15.
16. print "Scalars begin with a $variables->{'scalar'}->{'sigil'}\n";
變數作用域
上面所有的例子都使用這種語法:
1. my $var = "value";
實際上,my不是必須的。你可以省略:(譯註:前提是,你沒有使用「use strict;」語句)
1. $var = "value";
但是,上面的用法將創建一個全局變數,這是一個很差的編程實踐。my創建一個詞法作用域變數,這個變數只在定義它們的語句塊中可見(比如一段包在大括弧里的語句)。
1. my $x = "foo";
2. my $some_condition = 1;
3. if ($some_condition) {
4. my $y = "bar";
5. print $x; # prints "foo"
6. print $y; # prints "bar"
7. }
8. print $x; # prints "foo"
9. print $y; # prints nothing; $y has fallen out of scope
結合使用my和在Perl腳本開頭使用use strict,解釋器將捕獲常見的編程錯誤。比如,在上面的例子中,最後的print $y將引發一個編譯時錯誤並阻止程序運行。強烈建議使用use strict語句!
條件和循環語句
Perl有許多常用的條件和循環語句。Perl 5.10甚至提供了分支語句(拼作given/when)。
條件可以是任何Perl表達式。比較和布爾條件語句中常用的邏輯運算符,請參閱有關信息的下一節中的運算符的列表。
* if
1. if ( condition ) {
2. ...
3. } elsif ( other condition ) {
4. ...
5. } else {
6. ...
7. }
還有否定版本的:
1. unless ( condition ) {
2. ...
3. }
這個否定版比if (!condition)更易讀。
注意,大括弧是必須的,即使代碼塊中只有一行。不過,這里有一個方法可以讓你通過類似英語的語法來實現單行條件語句:
1. # the traditional way
2. if ($zippy) {
3. print "Yow!";
4. }
5.
6. # the Perlish post-condition way
7. print "Yow!" if $zippy;
8. print "We have no bananas" unless $bananas;
* while
1. while ( condition ) {
2. ...
3. }
為了和unless同樣的理由,也有一個否定版本:
1. until ( condition ) {
2. ...
3. }
你也可以在後置條件里使用while:
print "LA LA LA\n" while 1; # loops forever
* for
跟C語言一樣:
1. for ($i = 0; $i <= $max; $i++) {
2. ...
3. }
自然Perl提供了更友好的列表遍歷循環foreach以後,C語言風格的for循環在Perl幾乎不需要了。
* foreach
1. foreach (@array) {
2. print "This element is $_\n";
3. }
4.
5. print $list[$_] foreach 0 .. $max;
6.
7. # you don't have to use the default $_ either...
8. foreach my $key (keys %hash) {
9. print "The value of $key is $hash{$key}\n";
10. }
內置操作符和函數
Perl 附帶了各種各樣的內置函數。我們已經看到的幾個,包括print,sort和reverse。
Perl常見操作符(運算符)
* 算術
1. + 加法
2. - 減法
3. * 乘法
4. / 除法
* 數字比較
1. == 等於
2. != 不等於
3. < 小於
4. > 大於
5. <= 小於等於
6. >= 大於等於
* 字元串比較
1. eq 等於
2. ne 不等於
3. lt 小於
4. gt 大於
5. le 小於等於
6. ge 大於等於
(為什麼數字和字元串的比較運算符不同?因為我們沒有不同的變數類型,並且Perl需要知道是以數字進行排序(99小於100)還是以字母進行排序(100在99前面))
* 邏輯
1. && and 和
2. || or 或
3. ! not 否
* 混合
1. = 賦值
2. . 字元串連接
3. x 字元串乘法
4. .. 范圍 (建立一個列表)
一些操作符可以和=結合,像這樣:
1. $a += 1; # same as $a = $a + 1
2. $a -= 1; # same as $a = $a - 1
3. $a .= "\n"; # same as $a = $a . "\n";
文件和I/O
你可以使用open()函數來打開一個文件,用於輸入或輸出:
1. open(my $in, "<", "input.txt") or die "Can't open input.txt: $!";
2. open(my $out, ">", "output.txt") or die "Can't open output.txt: $!";
3. open(my $log, ">>", "my.log") or die "Can't open my.log: $!";
你可以使用<>操作符從打開的文件句柄中讀數據。在標量上下文中,它從文件句柄中讀取一行;在列表上下文中,它讀取整個文件,並將每一行作為列表的元素。
1. my $line = <$in>;
2. my @lines = <$in>;
一次性把整個文件讀完,叫做「啜食(slurping)」。它能讓人滿意,但它可能是內存吞噬者。大多數文本文件處理可以通過Perl的循環結構,一行一行地完成。
<>操作符經常出現在while循環里:
1. while (<$in>) { # assigns each line in turn to $_
2. print "Just read in this line: $_";
3. }
我們已經看到了如何使用print()在標准輸出里列印。但是,print()還能通過第一個可選參數指定一個文件句柄來列印(譯註:將內容輸出到指定的文件句柄中,即寫入到文件句柄相關聯的文件中)
1. print STDERR "This is your final warning.\n";
2. print $out $record;
3. print $log $logmessage;
當你完成了對文件句柄的操作之後,你應該使用close()來關閉文件句柄。(老實說,如果你忘記關閉了,Perl會幫你處理。)
close $in or die "$in: $!";
正則表達式
Perl對正則表達式的支持寬廣而深入:
* 簡單匹配
1. if (/foo/) { ... } # true if $_ contains "foo"
2. if ($a =~ /foo/) { ... } # true if $a contains "foo"
//匹配操作符(譯注,完整的應該是:m//)默認操作$_,或者使用=~來綁定其它變數進行操作。
* 簡單置換
1. s/foo/bar/; # replaces foo with bar in $_
2. $a =~ s/foo/bar/; # replaces foo with bar in $a
3. $a =~ s/foo/bar/g; # replaces ALL INSTANCES of foo with bar in $a
* 更復雜的正則表達式
你不僅能匹配固定的字元串。其實,你可以匹配任何你能想到的復雜正則表達式。
1. . 單個任意字元(默認不包含\n)
2. \s 一個空白字元 (空格, tab, 換行, ...)
3. \S 一個非空白字元
4. \d 一個數字 (0-9)
5. \D 一個非數字
6. \w 一個能組成單詞的字元 (a-z, A-Z, 0-9, _)
7. \W 一個不能組成單詞的字元
8. [aeiou] 匹配中括弧內的任意一個字元
9. [^aeiou] 匹配除了中括弧內列出的字元之外的任意一個字元
10. (foo|bar|baz) 匹配foo或bar或baz
11.
12. ^ 匹配開頭
13. $ 匹配結尾
量詞可用來指定數量:
1. * 零個或任意多個
2. + 至少一個
3. ? 零個或一個
4. {3} 3個
5. {3,6} 3到6個
6. {3,} 至少3個
一些簡單的例子:
1. /^\d+/ 以一個或多個數字開頭
2. /^$/ 空的,沒有任何東西
3. /(\d\s){3}/ 3個帶空白字元的數字
4. (比如 "3 4 5 ")
5. /(a.)+/ 匹配最少一次,含有a和任意字元
6. (比如 "abacadaf")
7.
8. # 從STDIN循環讀入,並列印出非空白行:
9. while (<>) {
10. next if /^$/;
11. print;
12. }
* 圓括弧捕捉
括弧的另一個用法是分組。它可以用來捕捉最後使用的正則表達式匹配的結果。這些結果用$1、$2……表示。
1. # a cheap and nasty way to break an email address up into parts
2.
3. if ($email =~ /([^@]+)@(.+)/) {
4. print "Username is $1\n";
5. print "Hostname is $2\n";
6. }
子程序
寫一個子程序是很容易的:
1. sub logger {
2. my $logmessage = shift;
3. open my $logfile, ">>", "my.log" or die "Could not open my.log: $!";
4. print $logfile $logmessage;
5. }
現在我們可以像使用其它內置函數一樣,使用該子程序了:
1. logger("We have a logger subroutine!");
什麼是shift?傳遞給子程序的參數保存在@_數組中。shift函數的默認參數是@_。所以my $logmessage = shift;去掉第一個參數,並將其賦值給$logmessage。
可以通過別的方法操作@_:
1. my ($logmessage, $priority) = @_; # common(通用)
2. my $logmessage = $_[0]; # uncommon, and ugly(不通過,並且很醜陋)
子程序可以返回值:
# sub square {
# my $num = shift;
# my $result = $num * $num;
# return $result;
# }
然後像這樣使用它:
1. $sq = square(8);
Perl面向對象
Perl面向對象相對比較簡單,這是實現使用引用什麼樣的對象知道自己是在Perl的概念為基礎的封裝。
剛開始進行Perl編程,你最常使用的Perl面向對象將是使用第三方模塊,參見下文。
使用Perl模塊
Perl 模塊提供了一系列的功能,可幫助您避免重復勞動,它們可以通過CPAN(www.cpan.org)下載。許多流行的模塊都已經包含在了Perl發行包中。
本文由無憂Perl(www.51perl.com)翻譯,轉載請註明本文鏈接:www.51perl.com/perl-brief-introction/
水平有限,錯誤難免,歡迎指正,並以原文為准。原文地址:http://perldoc.perl.org/perlintro.html
希望對你有用
⑶ Perl是什麼
發明perl的larry wall就說過:「perl可能不好看或者不好聞,但是它能完成任務」。 perl是文本處理語言,它最初就是為了這個目的設計的。 perl是網路編程語言,它內置了socket/client-server協議。 perl是系統管理語言,全球網路很多伺服器上就運行著它的腳本。很多時候是單行的腳本。 perl是web腳本編寫語言。至今它仍然是最流行的幾種web腳本編寫語言之一。 perl還可以: 用perl生成代碼 用perl(調用tk)編寫gui程序。 在c/c++中進行perl編程,在perl中進行c/c++編程 用perl過濾郵件 用perl數據倉庫編程 在web上進行搜索 有人說perl無所不能。 ----------------------------------------------------------------------------------------------------- 我個人覺得perl的文本處理能力是無以替代的。它的正則表達式功能之強大是其他編程語言無法達到的。 即使微軟的jscript/vbscript在正則表達式這項功能努力仿照和追趕perl,但仍然有很大的差距。 perl裡面的哈希結構也是一個十分有趣的東西,vbscript裡面對應的是dictionary,但是dictionary有欠直觀。 如果你對照一下perl和php,會發現兩者程序之間有很多類似的地方,php在產生的時候受到了perl很多的影響, 說php來源於perl也不為過。 perl甚至和vbscript/jscript一樣可以編寫asp程序。但同時,perl又不僅僅只有web腳本的功能。。。。但我 們很多web程序員用asp/php/jsp在編寫基於web的聊天室,用隱藏楨刷新聊天內容的老土辦法的時候,實際perl 寫的基於socket的chat server程序早就存在了。你甚至不需要用c/c++來做這些復雜的事情,一個perl一百行 代碼就可以做到了。 perl一直以來是一個免費的語言。你不用任何費用就可以獲得perl世界裡面的代碼包括perl本身。perl不是由 某個公司大力推廣而得到發展的,正如java那樣。perl用它自身的力量來發展自己。當我們發現perl的開發調 試工具就可以用perl來寫作,就不能不為它的神奇而感動。perl的世界是一個真正的自由的世界。 更多的時候,我覺得看一下perl,也是有很多地方值得借鑒的。有一些編程的方法就可以學過來,然後放到你所
⑷ 編程都有哪些語言
幾種常用編程語言簡單介紹
是一種計算機程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,始於編寫程序軟體,三維,二維圖形和動畫。具體應用比如單片機以及嵌入式系統開發。
優點:簡潔緊湊,靈活方便,運算符豐富,數據類型豐富,c是結構式語言,語法限制不太嚴格,程序設計自由度大,生成目標代碼質量高,程序執行效率高。
缺點:沒有面向對象編程功能(OOPs),運行時類型檢查是不可用,C不能夠在一個范圍內再次使用相同的變數名,構造函數和析構函數不可用,必須通過方法或者以其他方式來手動實現變數的析構和構造。
是在c語言的基礎上開發的一種面向對象編程語言,應用廣泛。它的主要特點表現在兩個方面:一是盡量兼容c,二是支持面向對象的方法。它操持了c簡潔,高效的接近匯編語言等特點,對c的類型系統進行了改革的擴充。
應用領域:游戲,科學計算,網路軟體,分布式應用,操作系統,設備驅動程序,移動設備,嵌入式系統,教育與科研,部分行業應用,其他應用。
是微軟對這一問題的解決方案。C#是一種最新的、面向對象的編程語言。
主要特點:簡單,現代,面向對象的,類型安全,相互兼容性,可伸縮性和可升級性。
主要領域:web應用,客戶端應用,分布式計算,人工智慧,各類游戲。
一種直譯式程序設計語言。名稱字面為意思「初學者的全方位符式指令代碼」,設計給初學者使用的編程語言,在完成編寫後不須經由編譯及鏈接等手續,經過解釋器即可運行,但如果需要單獨運行時仍然需要將其創建成可執行文件。
特點:(1)面向對象和可視化的程序設計。
(2)事件驅動的運行機制。
(3)結構化的程序設計語言。
(4)多種資料庫訪問能力。
(5)提供了功能完備的應用程序集成開發環境。
(6)方便使用的聯機幫助功能。
是一種解釋型的腳本語言。Perl語言由Larry wall干1986年開發成功。當初的目的主要是在Unix環境下,用於處理面向系統任務而設計的腳本編程語言。Perl對文件和字元有很強的處理、變換能力,它特別適用於有關系統管理、資料庫和網路互聯以及WWW程序設計等任務,這樣使得Perl稱為系統維護管理者和CGI編制者的首選工具語言。
特點:
1. Perl的解釋程序是開放源碼的免費軟體,使用Perl不必擔心費用。
2. Perl能在絕大多數操作系統運行,可以方便地向不同操作系統遷移。
3. Perl 是一種能完成任務的語言。從一開始,Perl 就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。
是一門面向對象編程語言,不僅吸收了c++語言的各種優點,還摒棄了c++里難以理解的多繼承,指針等概念,因此java語言具有功能強大和簡單易用兩個特徵。java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
特點:簡單性,面向對象,分布性,編譯和解釋性,穩健性,安全性,可移植性,高能性,多線索性,動態性。
應用:android應用,在金融業應用的伺服器程序,網站,嵌入式領域,大數據技術,高頻交易的空間,科學領域。
通常寫作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上的應用程序。
是一種通用開源腳本語言。語法吸收了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++進行程序的擴展!
是一種面向對象的解釋型計算機程序設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。
Python是純粹的自由軟體, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議 。Python語法簡潔清晰,特色之一是強制用空白符(white space)作為語句縮進。
特點:簡單,易學,速度快,免費、開發,高層語言,可移植性,解釋性,面向對象,可擴展性。
應用:
系統編程,圖形處理,數學處理,文本處理,資料庫編程,網路編程,多媒體應用,pymo引擎,黑客編程。
是一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發,遵守GPL協議和Ruby License。它的靈感與特性來自於Perl、Smalltalk、Eiffel、Ada以及Lisp 語言。
優點
語法簡單,普通的面向對象功能(類,方法調用等),特殊的面向對象功能(Mixin,特殊方法等,操作符重載,錯誤處理功能迭代器和閉包,垃圾回收,動態載入,可移植性高。