国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

編程語言的進化

開發 開發工具
早上讀到了一篇文章《Lisp的永恒之道》 這一篇文章解決了我一直以來對Lisp編程語言的疑惑,加深了對DSL(領域編程語言),同時對編程語言的理解也越來越深入。寫一篇文章的目的就是從主要編程語言的進化來看看編程語言發展的過程以及背后的設計哲學,當然,這個只是我自己的認識,如果有不足之處,請博友指教。

早上讀到了一篇文章《Lisp的永恒之道》 這一篇文章解決了我一直以來對Lisp編程語言的疑惑,加深了對DSL(領域編程語言),同時對編程語言的理解也越來越深入。寫一篇文章的目的就是從主要編程語言的進化來看看編程語言發展的過程以及背后的設計哲學,當然,這個只是我自己的認識,如果有不足之處,請博友指教。

機器語言

最早的編程語言是卡帶,也就是機器語言,這種語言沒有語義和語法,操作符和數據混合在一起,偏向于具體的設備,依賴覺得硬件。

匯編語言

隨后,匯編語言就出現了,匯編語言定義了基本的語法結構,定義了操作符和數據類型,但是匯編語言還是針對特定的硬件編程,比如cpu,我記得大學的時候學習的就是8086匯編語言程序設計,這個就是針對intel 8086cpu的編程語言而設計,如果cpu是80386,那么就必須在對80386的cpu進行編程,可移植性非常差。如果針對每一個cpu就要重新寫整一套代碼,那么將會是多么復雜的事情,困難度不可想象。

C語言

對于匯編語言的問題,主要要解決跨硬件平臺,那么怎么解決這個問題了,對啦,添加一個抽象層,這個就是硬件抽象層,它隱藏了特定平臺的硬件接口細節,為操作系統提供虛擬硬件平臺,使其具有硬件無關性,可在多種平臺上進行移植。相當于提供統一的api 比如C語言printf函數,打印字符串,由于每個終端設備的類型和型號都不一樣,需要在適配到每個終端設備上,那么通過一個終端虛擬硬件,由它進行各個終端差異的屏蔽,提供統一的對外接口,有點類似適配器模式。用C語言寫出來的程序。雖然這樣簡化了操作硬件的這種復雜行,但是直接寫操作虛擬硬件的代碼也是很苦逼的事情,這樣就出現了系統內核,用來提供更高一層的抽象,所以C語言操作硬件的函數都會調用系統內核,由系統內核再去調用具體的虛擬終端設備。這個就和特定的操作系統有關了,C語言編譯器編譯出來的代碼就和操作系統進行關聯。所以C語言程序很難做到跨操作系統平臺,因為每個操作系統都提供私有函數,并且編譯出來的二進制代碼也是不一樣的,跨平臺基本不可能。

高級語言:java,.net

為了解決C語言的跨平臺的問題,可以考慮再在操作系統這一層添加一個抽象。那么就出現了java和.net這樣的編程語言。java通過實現一個jvm虛擬機,屏蔽了各個操作系統的差異,同時定義了一個標準的目標代碼(class文件),只要class文件滿足jcp定義的規范,就可以被jvm執行。這就解決了兩個問題,目標代碼格式固定,這個平臺都一樣,函數調用都一樣,都和jvm打交道。這樣就實現了跨越操作系統平臺。但是還存在一個問題,jvm的實現只能夠獲取各個操作系統公共的部分進行抽象,但是有一些操作系統私有的個性化是無法屏蔽的,只能通過開通一個小后門,讓開發者能夠開發基于操作系統的native實現。

DSL領域編程語言

好了,編程語言發展到這一層,已經非常高級了,對于開發者來說,已經夠簡單了。不需要硬件只是,不需要懂操作系統知識。如果在繼續發展會怎么樣,對啦,是不是可以跨越編程語言。還有,編程語言一般都是語法和語義綁定在一起的,比如 int c = a + b 這一條賦值語句,我們知道要把 a 和 b相加 賦予 c ,相當于知道語法,就知道語義了,那么是不是可以把語義 和 語法 分開 ?

語義:

  1. define c = add(b,c)  

或者

  1. <opteration name="add" result="c"><paramparam="a,b"/></opteration> 

那么轉化為 java語言 就是 int c = a + b; 轉化為javasrpit var c = a + b 等等

相當于what 和 how 分開,就是說 我要做什么 和 我怎么做 這一層在區分開來。目前我們使用的比較多的就是maven

maven通過自己的一套語義,定義了整個構建的過程。我只定義了怎么做,通過xml這一套語法來定義,但是具體怎么做我通過一個解釋層來實現,同時也可以用不同的語言,可能在java平臺上,我用java語言來實現,在.net平臺,我用.net來實現。

其中大名頂頂的 facebook的 Thrift框架就是這種設計思想,通過自己定義的一套語言,定了一個分布式服務框架,通過自己的解釋器,把自己定義的解釋成為不同的語言實現。

但是由于領域語言的語義定義的規則和模式都不一樣,對于每個不同的領域,都有自己的DSL,比如是ant,我就必須學習一下整個ant的規則,比如maven也需要重新開始學習。

目前很多語言轉化服務,比如目前把java寫的語言轉化為obejct-c和windows的云服務,原理和上面類似,應該都是先轉化為一套中間語言,然后轉化成為各個實際的特性語言。

未來想象

隨著DSL語言的快速發展,我在想 未來是不是會把DSL也統一起來,定義一套通用的規則和規范,找出每個領域特性部分,進行抽象,形成一種統一的開發語言。比如web編程,只需要web方面的DSL語言就可以了,不需要在學習python,php,jsp,asp等等,在數據庫操作方面也一樣,不需要在了解各個平臺具體連接數據庫的方式以及代碼實現,用統一的數據操作DSL就可以了。這個想法比較大,也是扯扯淡的,不過還是希望未來的某一天,編程語言會統一,不過現在越來越有這個趨勢了,各個語言都在添加其他語言的特性,增強自己的特性,以后各個語言都變的越來越類似,功能也越來越雷同,***需要考慮的是語言性能問題,但是隨著硬件的發展,除非某一個特定的領域,大部分應用在語言層面的性能應該會忽略。

通過編程語言的進化,起始發現背后的思想都是一樣的,原話我忘記是怎么說的,大概意思是:任何兩個系統之間的復雜性,都可以通過添加一個抽象層要屏蔽。整個編程語言的進化也都說明了這個問題。

原文鏈接:http://www.cnblogs.com/aigongsi/archive/2012/09/28/2706604.html

責任編輯:林師授 來源: 博客園
相關推薦

2011-01-04 17:08:10

匯編語言

2010-03-19 09:39:17

Python編程語言

2021-05-28 05:34:06

Golang語言編程

2021-01-13 10:40:42

編程語言PLCGraph

2021-08-10 19:15:17

語言編程應用

2020-10-13 06:34:15

編程語言IDE

2020-10-23 18:40:56

編程語言HTML程序員

2011-10-21 10:54:04

編程語言

2015-11-02 17:25:23

Elixir編程語言未來

2018-11-12 12:50:30

C語言編程匯編

2010-01-21 16:08:26

C++語言

2018-05-14 12:30:37

數據驅動算法優化

2024-02-04 15:58:53

C++ 17編程代碼

2021-08-23 15:05:21

PyretJavaScript編程

2010-03-19 18:09:35

Java編程語言

2015-03-06 17:36:46

Folders編程語言

2020-02-05 17:09:28

編程語言代碼Ruby

2010-04-19 16:42:14

OraclePL

2010-03-19 18:00:43

Java編程語言

2011-12-26 09:12:24

編程語言
點贊
收藏

51CTO技術棧公眾號

狠狠操第一页| 久久人人97超碰人人澡爱香蕉| 久久国产精品网| 日韩精品二区| 一本色道久久综合狠狠躁篇的优点| 有码在线播放| 国产精品毛片久久久久久久| 一区二区三区一级片| 欧美日韩国产成人精品| 88国产精品欧美一区二区三区| av资源中文在线| 欧美视频精品在线| 国产免费福利| 2023国产一二三区日本精品2022| 精品久久久久久一区| 要久久电视剧全集免费| 日韩中文字幕视频在线| 国产在线美女| 欧美福利视频导航| 极品白浆推特女神在线观看 | 日韩电影视频免费| 国产一区二区三区不卡在线| 亚洲国产日韩综合久久精品| 激情内射人妻1区2区3区| 久久成人av少妇免费| 女人一区二区三区| 伊人久久久大香线蕉综合直播 | 操欧美老女人| 欧美日本在线视频中文字字幕| caoporn视频在线| 欧美一级夜夜爽| 在线观看免费版| 欧美视频一区二区在线观看| 国产精品99999| 亚洲一区在线视频| 日本免费视频| 五月天欧美精品| 日韩写真在线| 欧美视频裸体精品| 国产玉足榨精视频在线观看| 在线观看日韩国产| 最新av网站在线观看| 欧美午夜宅男影院| 日本中文在线观看| 欧美一区二区不卡视频| 韩国日本一区| 亚洲天堂成人在线| 日本免费一区二区三区等视频| 伊人一区二区三区久久精品| 国产成人精品亚洲日本在线观看| 亚洲精品网址在线观看| 91p九色成人| 欧美成人在线免费| 99re热精品视频| 日本欧美国产在线| 中文字幕一区二区三区在线视频 | av二区三区| 樱花草国产18久久久久| 在线观看午夜看亚太视频| 在线精品视频免费播放| а天堂中文在线官网| 国产视频精品xxxx| 国产精品美女久久久久人| **欧美日韩vr在线| 久久久久av| 亚洲黄色一区二区三区| 99精品一区二区三区| 免费看av大片| 欧美二区三区的天堂| 外国电影一区二区| 午夜精品一区二区三区av| 99欧美视频| 亚洲va韩国va欧美va精四季| 久久久久久久久蜜桃| 最美情侣韩剧在线播放| 日韩午夜av电影| 精品国产第一国产综合精品| 国产玖玖精品视频| 久久草av在线| ·天天天天操| 精品国产乱子伦一区| 国产精品186在线观看在线播放| 51精品在线观看| 国产一区丝袜| 国产mv免费观看入口亚洲| 精品三级av| 亚洲国产欧美久久| 香港三级经典全部种子下载| 亚洲丶国产丶欧美一区二区三区| 亚洲天堂久久| 久久手机视频| www.亚洲色图| 在线免费中文字幕| 日韩一区二区在线观看视频播放| 日韩五码电影| 国产精品xxxx| 久久久亚洲国产美女国产盗摄| 手机福利在线| www日韩中文字幕在线看| 中文字幕一区二区av| 超级碰在线观看| 亚洲无人区一区| 小视频免费在线观看| 国产精品综合网站| 91视频你懂的| 伊人电影在线观看| 国产精品吊钟奶在线| 国产成人av福利| 97电影在线| 欧美综合第一页| 国产精品1区2区| 97在线观看免费观看高清| 性视频1819p久久| 久久国产综合精品| 麻豆导航在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产99在线| 亚洲wwwav| 亚洲国产精品传媒在线观看| av影院在线免费观看| 波多野结衣一区二区三区在线观看| 26uuu国产电影一区二区| 成人免费高清| 国产日本欧美一区二区三区| 91麻豆视频网站| 高清毛片在线观看| 成人av免费在线看| 亚洲精品国产一区二区精华液| 少妇精品视频一区二区免费看| 国产一区二区无遮挡| 亚洲最色的网站| 精品成人自拍视频| 欧美亚洲另类色图| 亚洲一区二区久久| 麻豆精品久久久| 毛片在线播放a| 国产精品视频福利| 色诱亚洲精品久久久久久| 欧美三级伦理在线| 国产夫妻视频| 97视频人免费观看| 久久久久久久久久久黄色| 波多野结衣亚洲| 中文字幕一区二区三区乱码 | 黑人另类精品××××性爽| 高清国语自产拍免费一区二区三区| 亚洲伦在线观看| 女同久久另类99精品国产| 免费黄色特级片| xvideos亚洲人网站| 成人午夜看片网址| 一区二区视频免费完整版观看| 一区二区三区的久久的视频| 欧美成人高清电影在线| 久久人人97超碰国产公开结果| 国产成人午夜| 丝袜美腿玉足3d专区一区| 精品少妇一区二区三区在线视频| 久久裸体视频| 一二三四视频在线中文| 日韩成人三级视频| 久久的精品视频| 亚洲国产成人一区二区三区| 久久这里只有精品一区二区| 老司机性视频| 91久久国产自产拍夜夜嗨| 欧美日韩aaaaaa| 麻豆免费精品视频| 国产人妖一区| 国产对白在线| 亚洲自拍在线观看| 欧美一区二区三区电影| 国产一区二区在线观看视频| 91精品国产自产观看在线| 免费男女羞羞的视频网站中文版| 国产精品扒开腿做爽爽爽视频| 亚洲444eee在线观看| 中文字幕日韩一区二区不卡| 国产二区三区在线| 成年人看的毛片| 91高清视频免费观看| 在线影院国内精品| 国产一区美女在线| 老牛影视av一区二区在线观看| 天堂资源最新在线| 一区不卡视频| 国外成人免费在线播放| 欧美性猛交xxxx富婆| 免费观看一级特黄欧美大片| 国产综合色激情| 三级ai视频| 亚洲国产日韩美| 久久欧美在线电影| 欧美亚一区二区| 国产suv精品一区二区三区| 偷拍自拍亚洲色图| a级影片在线观看| www.xxx亚洲| 精品国产一区二区三区四区精华 | 成人av动漫在线观看|