首先是martinfowler的一則blog(
元程式設計系統(metaprogrammingsystem)
sergeydmitriev是jetbrains的領導之一,jetbrains給我們提供了諸如intellijidea和resharper等眾多優秀的工具。sergey在最近發表的一篇文章中提到了他在元程式設計系統上的探索。他認為這是範圍更廣的面向語言程式設計(languageorientedprogramming)的乙個例子。
martin的blog中domainspecificlanguage是有關dsl的他的blog。
其實dsl的興起一點都不意外。個人覺得這時mda迅速發展的乙個必然產物。mda發展的乙個基礎是omg意外地發現了uml的興隆,想當年omg可是一心撲在corba上的,結果這個親生兒子不爭氣,從rational過來的uml這個遺腹子反而受歡迎得不得了。因此omg要基於uml作為建模的基礎,來作為和中間技術平台無關的建模語言。
但omg很快明智地發現,任何乙個試圖大而全的舉動都是危險的。corba如是,uml也如是,因此omg開始協調uml和mof之間的關係,mof起初是以uml和corba之間的橋梁身份出現的,但這個身份很快過時了。現在的mof是mda的基礎,是所有元模型的定義語言。什麼是元模型呢?就是基於mof為各個領域的特定建模需求所定義的領域建模語言,就是dsl。
其實說來,目前流行的意圖程式設計(intentionalprogramming)、軟體生產線等都有dsl的思想。微軟雄心勃勃的白馬計畫更是如此。看看vsts的keithshort的blog就知道了。
下乙個天亮
用起伏的背影 擋住哭泣的心 有些故事 不必說給 每個人聽 許多眼睛 看的太淺太近 錯過我沒被看見 那個自己 用簡單的言語 解開超載的心 有些情緒 是該說給 懂的人聽 你的熱淚 比我激動憐惜 我發誓要更努力 更有勇氣 等下乙個天亮 去上次牽手賞花那裡散步好嗎 有些積雪會自己融化 你的肩膀是我豁達的天堂...
下乙個排列
給定乙個若干整數的排列,給出按正數大小進行字典序從小到大排序後的下乙個排列。如果沒有下乙個排列,則輸出字典序最小的序列。樣例 左邊是原始排列,右邊是對應的下乙個排列。1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1,5,1 思路 1 先從右到左找到第乙個不屬於非最大字典序排列的元素l,...
下乙個排列
給定乙個若干整數的排列,給出按正數大小進行字典序從小到大排序後的下乙個排列。如果沒有下乙個排列,則輸出字典序最小的序列。左邊是原始排列,右邊是對應的下乙個排列。1,2,3 1,3,2 3,2,1 1,2,3 1,1,5 1,5,1 剛開始看這個題目沒有看懂,在網上蒐集一番資料後,懂得了題目想要做的事...