文档章节

DSL 簡單介紹

Milos
 Milos
发布于 2014/01/29 01:36
字数 264
阅读 36
收藏 0
点赞 0
评论 0
DSL

DSL 是Domain Specific Language的縮寫。

是指針對特定領域(Domain)而設計的語言,其中詞彙與語法,只描述做什麼而不進一步描述怎麼做的設計概念。

有些專門開發的語言是解讀DSL的,如sed,pic,tbl,yacc等等,小巧的語言只是專門解析特定用途的,無法擴展,這些符合DSL的設計。

1.外部DSL

透過專用的語言引擊來實現DSL,稱之外部DSL。

(1)XML以外部設定,讓Java可以讀取設定。
(2)SQL,學會了SQL就可以在不同語言領域引用而操做資料庫。
(3)正規表示式(Regular expression),不同的語言根據規則而實現。

2.內部DSL

在既有的語言內實現DSL,如Ruby可以藉助RakeFile 實現類似MakeFile的功能,也可以當成Ruby語言。

© 著作权归作者所有

共有 人打赏支持
Milos
粉丝 0
博文 1
码字总数 264
作品 0
台北
高级程序员
GPU相关资料(转自http://heresy.spaces.live.com/blog/cns!E0070FB8ECF9015F!3114.entry)

nVidia CUDA 簡介 (2007/10/31) 先針對 GPGPU 做簡單的介紹,然後再對 nVidia CUDA 本身軟體架構、程式執行架構、記憶體架構,做最基本的介紹。 版本演進 環境設定 nVidia CUDA API 簡單的 ...

长平狐
2012/10/16
161
0
QT Phonon详解

前言 Phonon嚴格來說其實非為Qt的library,Phonon原本就是KDE 4的開放原始碼多媒體API,後來與Qt合併與開發,所以簡單來說就是Qt使用Phonon這個多媒體框架來提供一般影音多媒體檔案的播放,而...

晨曦之光
2012/04/13
2.4K
1
无线安全利器--AirSnort

WEPCrack 是第一個公開宣稱的 WEP 破解的工具, 2001 年的 8 月, 差不多同時間公開的另一個工具 ─ AirSnort, 卻因媒體的介紹而廣為人知。 事實上, AirSnort 在操作上也較 WEPCrack 簡單, 圖形...

匿名
2009/07/01
4.4K
0
reCAPTCHA 簡易使用說明 與 PHP版 範例程式

reCAPTCHA 是什麼? 簡單說就是: "免費提供 驗證碼(Captcha) 功能的服務, 而且還可以幫忙典籍數位化的進行." reCAPTCHA 簡介 詳細的就不多說, 參考下述連結即可: reCAPTCHA - 維基百科,自由的...

华宰
2011/05/30
1K
0
撰寫跑馬燈/廣告輪撥的好工具:jQuery Cycle Plugin

jQuery 是我最常用的 JavaScript Library,而且外掛程式超多,有空的人是可以多上去看看有什麼新玩意,保證有許多驚喜!我大約是在一年前得知有 jQuery Cycle Plugin 這個 jQuery 外掛套件吧...

红薯
2009/01/11
1K
0
[.NET]SignalR簡介 - 建立 realtime 的網站

前言 一早起床後,在消化 RSS 的過程中,看到 Scott Hanselman 在 Russia TechDays 介紹 SignalR 的影片,一整個讓人很驚豔,馬上就想動手寫寫看。 由於我也是初學者,先把相關 Reference 列...

鱼煎
2013/10/23
0
1
Activity android:launchMode

在 Manifest.xml 中每個 Activity 都有個 launchMode 可以調整… 如果專案中每個 Activity 都很獨立,一般是不太需要注意到這個屬性… 但若是專案中的某個 Activity 有可能 startActivity 自...

蜗牛TT
2012/09/12
0
0
jQuery全面解剖系列(一)Deferred风格的Ajax

最近准備寫一個系列的文章來談jQuery的種種技巧和原理。 今天講Deferred風格的Ajax,本篇分爲兩部分,第一部分介紹Deferred風格的Ajax的基本使用,第二部分深入一點介紹原理。 基本使用 Defe...

i33
2012/11/23
0
0
Getting Started 系列 - Netbeans 的 Action

Action 雖然不是什麼很特別的技巧,但是它被廣泛地應用在 Java Swing 的套件之中。我寫過許多程式語言,Java Swing Action 是我覺得 Java 當中相當經典的設計。 NetBeans 的 Action 也是因循...

晨曦之光
2012/03/09
0
0
Tcpdump的使用

簡易使用法: (為了抓到隱藏在 Code 裡的語法, 直接看port有傳什麼資料進來) sudo tcpdump -nnnX -s 1500 port 3306 sudo tcpdump -aXXX port 3306 | grep denied -s : 抓比較長的 data 做一筆...

红薯
2009/01/07
414
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

问题终结者
10分钟前
0
0
expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 #!/usr/bin/expectset passwd "123456"spawn rsync -av root@192.168.133.132:/tmp/12.txt /tmp/expect {"yes...

lyy549745
11分钟前
0
0
36.rsync下 日志 screen

10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具 10.32/10.33 rsync通过服务同步: rsync还可以通过服务的方式同步。那需要开启一个服务,他的架构是cs架构,客户端服务...

王鑫linux
19分钟前
0
0
matplotlib 保存图片时的参数

简单绘图 import matplotlib.pyplot as pltplt.plot(range(10)) 保存为csv格式,放大后依然很清晰 plt.savefig('t1.svg') 普通保存放大后会有点模糊文件大小20多k plt.savefig('t5.p...

阿豪boy
23分钟前
0
0
java 8 复合Lambda 表达式

comparator 比较器复合 //排序Comparator.comparing(Apple::getWeight);List<Apple> list = Stream.of(new Apple(1, "a"), new Apple(2, "b"), new Apple(3, "c")) .collect(......

Canaan_
昨天
0
0
nginx负载均衡

一、nginx 负载均衡 拓扑图: 主机信息: 1、负载均衡器1(lb1):192.168.10.205 RHEL7.5 2、负载均衡器2(lb2):192.168.10.206 RHEL7.5 3、web服务器1(web01):192.168.10.207 Centos...

人在艹木中
昨天
0
0
做了一个小网站

做了一个小网站 www.kanxs123.com

叶落花开
昨天
0
0
继社会佩奇之后,又尝试了可爱的蓝胖子,有趣 Python

#哆啦A梦# !/usr/bin/env python3# -*- coding: utf-8 -*-# @Author: dong dong# @Env: python 3.6from turtle import *# 无轨迹跳跃def my_goto(x, y): penup(...

Py爱好
昨天
0
0
shell及python脚本方式登录服务器

一、问题 在工作过程中,经常会遇见需要登录服务器,并且因为安全的原因,需要使用交互的方式登录,而且shell、python在工作中也经常用到,并且可以提供交互的功能。都是利用了expect、spawn...

yangjianzhou
昨天
0
0
upstream sent too big header while reading...

nginx 报错:1736 upstream sent too big header while reading response header from upstream 1. 一般处理 location ~ \.php$ { #增加下面两句 fastcgi_buffer_size 128k; ......

dubox
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部