成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

可在JVM、nodejs和瀏覽器運(yùn)行的靜態(tài)編譯語言 Ceylon 發(fā)布 1.0 版

mo0n1andin / 697人閱讀

摘要:是一個(gè)可運(yùn)行于和瀏覽器的靜態(tài)語言。近日發(fā)布了正式版本。語言包及工具此次發(fā)布的版本中包括完整的語言規(guī)范。命令行工具集,包括針對(duì)和的編譯器文檔編譯器。功能強(qiáng)大的模塊架構(gòu),可用于組織代碼,管理依賴,在運(yùn)行時(shí)隔離模塊。

Ceylon是一個(gè)可運(yùn)行于JVM、nodejs和瀏覽器的靜態(tài)OO語言。

近日Ceylon發(fā)布了1.0正式版本。

語言特性

高可讀性,避免和消除潛在的有害架構(gòu)

一個(gè)結(jié)合了子類型、參數(shù)化多態(tài)性和聲明位置變量的類型系統(tǒng),支持集和交集類型,局部類型推斷等特性。

高階函數(shù)和元組類型,可以實(shí)現(xiàn)強(qiáng)大的抽象

針對(duì)模塊定義和模塊間依賴定義的先進(jìn)的架構(gòu)

語法靈活,支持樹形的結(jié)構(gòu)表達(dá)方式

完全具體化的泛型類型,支持JVM和JavaScript虛擬機(jī),還包括一個(gè)獨(dú)特的類型安全的元模型。

詳細(xì)語言特性請(qǐng)參考官方文檔。

Ceylon語言包及工具

此次發(fā)布的1.0版本中包括:

完整的語言規(guī)范。

命令行工具集,包括針對(duì)Java和JavaScript的編譯器、文檔編譯器。

功能強(qiáng)大的模塊架構(gòu),可用于組織代碼,管理依賴,在運(yùn)行時(shí)隔離模塊。

語言模塊,這是Ceylon語言的重要組成部分,是Ceylon SDK跨平臺(tái)的基礎(chǔ)

一個(gè)全功能的基于Eclipse的集成開發(fā)環(huán)境

目標(biāo)

像其他JVM語言一樣,Ceylon也被看成是“Java的替代者”,對(duì)此,Ceylon的作者Gavin King表示:

  

Ceylon不是Java,它是深受Java影響的一種新語言,它的設(shè)計(jì)者是Java的堅(jiān)定支持者。Java不會(huì)很快消亡,沒有哪種語言能夠取代它。

Gavin King表示,開發(fā)Ceylon的初衷是為了擴(kuò)展Java,而不是取代Java。Gavin認(rèn)為Java中有許多問題,包括:泛型之類特性的復(fù)雜性、設(shè)計(jì)粗糙且晦澀難懂的JDK、粗劣的注解語法、不完善的塊結(jié)構(gòu)、對(duì)XML的依賴性等等。因此他希望開發(fā)一種新型語言來解決這些問題。

代碼樣例

函數(shù)

function distance(Point from, Point to) {
    return ((from.x-to.x)^2 + (from.y-to.y)^2)^0.5;
}

class Counter(Integer initialValue=0) {

    variable value count = initialValue;

    shared Integer currentValue {
        return count;
    }

    shared void increment() {
        count++;
    }

}

循環(huán)

String[] names = ["Tom", "Dick", "Harry"];
for (name in names) {
    print("Hello, ``name``!");
}

樹形結(jié)構(gòu)

Table table = Table {
    title = "Squares";
    rows = 5;
    Border {
        padding = 2;
        weight = 1;
    };
    Column {
        heading = "x";
        width = 10;
        String content(Integer row) {
            return row.string;
        }
    },
    Column {
        heading = "x^2";
        width=10;
        String content(Integer row) {
            return (row^2).string;
        }
    }
};

測(cè)試

Suite tests = Suite {
    Test {
        "sqrt() function";
        void run() {
            assert(sqrt(1)==1);
            assert(sqrt(4)==2);
            assert(sqrt(9)==3);
        }
    },
    Test {
        "sqr() function";
        void run() {
            assert(sqr(1)==1);
            assert(sqr(2)==4);
            assert(sqr(3)==9);
        }
    }
};

Mixin

interface Sized {
    shared formal Integer size;
    shared Boolean empty {
        return size==0;
    }
}

interface Printable {
    shared void printIt() {
        print(this);
    }
}

object empty satisfies Sized & Printable {
    shared actual Integer size {
        return 0;
    }
}

Comprehensions

[ for (p in people) p.firstName + " " + p.lastName ]

官方網(wǎng)站:http://ceylon-lang.org/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77948.html

相關(guān)文章

  • JVM 平臺(tái)上各種語言開發(fā)指南[z]

    摘要:我們的目標(biāo)是建立對(duì)每一種語言的認(rèn)識(shí),它們是如何進(jìn)化的,未來將走向何方。有點(diǎn)的味道是堅(jiān)持使用動(dòng)態(tài)類型,但唯一還收到合理?yè)肀玫木幊陶Z言,然而一些在企業(yè)的大型團(tuán)隊(duì)中工作的開發(fā)者擇認(rèn)為這會(huì)是的一個(gè)缺陷。 為什么我們需要如此多的JVM語言? 在2013年你可以有50中JVM語言的選擇來用于你的下一個(gè)項(xiàng)目。盡管你可以說出一大打的名字,你會(huì)準(zhǔn)備為你的下一個(gè)項(xiàng)目選擇一種新的JVM語言么? 如今借助來自...

    phodal 評(píng)論0 收藏0
  • 云計(jì)算時(shí)代最具潛力12種編程語言

    摘要:由于云計(jì)算所有模式是將任務(wù)分發(fā)跨越不同地域的多個(gè)并行或同時(shí)運(yùn)行,所以現(xiàn)今的編程語言都不是很適合。云計(jì)算需要客戶端代碼無縫的運(yùn)行在多個(gè)客戶端設(shè)備上,雖然已經(jīng)成為了一個(gè)標(biāo)準(zhǔn),但沒有人喜歡它。 我們需要新的編程語言?你可能認(rèn)為并不需要,但是如果你去了解最近的趨勢(shì),你可能會(huì)改變你的想法。為什么Google采用GO和DART兩種編程語言?為什么IBM、Cray、Red Hat分別創(chuàng)造了X10、Chap...

    ad6623 評(píng)論0 收藏0
  • IntelliJ IDEA 16預(yù)覽更新內(nèi)容說明

    摘要:線程過去,跨過一個(gè)線程意味著要恢復(fù)所有的其他線程,而版開始只需要恢復(fù)當(dāng)前線程即可??焖偎阉餍掳姹靖倪M(jìn)了快速搜索的彈出菜單,會(huì)將搜索項(xiàng)高亮顯示。終于新增支持。 調(diào)試器 Groovy表達(dá)式 從16版開始,Evaluate Expression 和 Watches可以使用更短且更具表現(xiàn)力的Groovy表達(dá)式進(jìn)行調(diào)試,而Groovy表達(dá)式以前只能用于Groovy代碼。 線程 過去,跨過一個(gè)線程...

    iKcamp 評(píng)論0 收藏0
  • 前端發(fā)展歷程

    摘要:前端的發(fā)展歷程什么是前端前端針對(duì)瀏覽器的開發(fā),代碼在瀏覽器運(yùn)行后端針對(duì)服務(wù)器的開發(fā),代碼在服務(wù)器運(yùn)行前端三劍客超文本標(biāo)記語言是構(gòu)成世界的基石。 前端的發(fā)展歷程 什么是前端 前端:針對(duì)瀏覽器的開發(fā),代碼在瀏覽器運(yùn)行 后端:針對(duì)服務(wù)器的開發(fā),代碼在服務(wù)器運(yùn)行 前端三劍客 HTML CSS JavaScript HTML HTML(超文本標(biāo)記語言——HyperText Markup ...

    劉明 評(píng)論0 收藏0
  • 開發(fā)者測(cè)試-采用精準(zhǔn)測(cè)試工具對(duì)Spring Boot應(yīng)用進(jìn)行測(cè)試

    摘要:,整合剛才已經(jīng)下載好了,現(xiàn)在我們添加文件標(biāo)簽加一行如下然后是和在文件中添加數(shù)據(jù)源配置連接本地,新建數(shù)據(jù)庫(kù),查詢執(zhí)行項(xiàng)目頁(yè)面列出來的語句自動(dòng)建立該項(xiàng)目需要的數(shù)據(jù)庫(kù)內(nèi)容。 簡(jiǎn)介:本文主要介紹把現(xiàn)今主流的springboot框架項(xiàng)目和精準(zhǔn)測(cè)試工具進(jìn)行結(jié)合和應(yīng)用,通過精準(zhǔn)測(cè)試的數(shù)據(jù)穿透、數(shù)據(jù)采集、測(cè)試用例與代碼的雙向追溯、數(shù)據(jù)分析等一系列精準(zhǔn)測(cè)試的特有功能,達(dá)到對(duì)項(xiàng)目質(zhì)量的保證。  本次環(huán)境搭...

    galois 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<