Atitit 多语言互相调用总结mltlan invk现在我们开发项目往往会采用多种语言,各取所长 组合使用。。常常需要互相调用为什么会调用多种语言?1.开发效率与可读性 ,一种情况是实现同

Atitit 多语言互相调用总结mltlan invk

现在我们开发项目往往会采用多种语言,各取所长 组合使用。。常常需要互相调用

为什么会调用多种语言?

1.开发效率与可读性 ,一种情况是实现同样功能或模块,使用另外一种语言更加方便简洁。

  1. 功能性,还有可能本语言缺失某些类库或有缺陷,而另外语言恰好有。。
  2. 要实现某功能或模块,发现已经有了,但是是另外一种语言写的,此时只需要集成调用即可
  3. 项目体积,不同语言的类似类库体积可能相差很大
  4. 可维护性 性能 稳定性等需要

目录

1. 其中又分为GPL通用编程语言和DSL领域特定语言(包括各种表达式)

1.1. 常见的GPL有java php js python go c# 等,DSL更是种类繁多

2. sql 结构化查询语言(Structured Query Language

2.1. DDL——Data Definition Language 数据定义语言

2.2. DQl – Data Query Language数据查询语言  即select语句

2.3. DML——Data Manipulation Language数据操作语言

2.4. DCL –Data Control Language 数据控制语言 权限控制

2.5. TCL – Transaction Control Language 事务控制语言

2.6. 数据库管理语句约60条(mysql)

3. H5 XML ui重要的标记语言

3.1. 文本框 按钮 多媒体等可视化控件标记

3.2. 逻辑标记 if else for等目前可通过vue补齐

3.3. Rdf标记 hCard、hCalenda等微格式标记

3.4. 存储类 (kv 数据库 store websql)

4. 其他dsl

4.1. 配置文件用的YAML  标记语言

4.2. 文本检索用的的 正则表达式regular expression

4.3. h5检索用到的css选择器表达式,XPath等

4.4. 调用外部进程或解释器 cmd shell语句

4.5. Lamda表达式

4.6. Other

5. 互相调用方式

5.1. Socket 模型

5.2. http rest方式

5.3. Cli 模式调用外部解释器方式

5.4. 内部解释器(xx驱动)

5.5. Cli包装器

5.6. cli直接执行

5.7. 如何直接调用编译型语言源码

6. Ref

  1. 其中又分为GPL通用编程语言和DSL领域特定语言(包括各种表达式)

    1. 常见的GPL有java php js python go c# 等,DSL更是种类繁多

一般gpl属于3gl ,dsl属于4gl (第四代编程语言),4.5G为受限自然语言(限定了一定格式的自然语言),5gl就基本是自然语言了  ,语言代际越高,越简洁,开发效率越高

一些简单的脚本语言差不多属于3.5GL了。。

  1.  sql 结构化查询语言(Structured Query Language

  。主要用于数据库检索

其中sql又具体细分为

    1. DDL——Data Definition Language 数据定义语言 

主要维护数据库表元结构,包括索引等create alter drop  truncate comment rename

    1. DQl – Data Query Language数据查询语言  即select语句
    2. DML——Data Manipulation Language数据操作语言

增删改语句 包括批量复制等语句 insert update delete

    1. DCL –Data Control Language 数据控制语言 权限控制

DCL包括GRANT、REVOKE等命令,主要处理数据库系统的权限、权限等控制。 

DCL 命令示例: 

  • GRANT -授予用户对数据库的访问权限。
  • REVOKE -撤销使用 GRANT 命令赋予的用户访问权限

    1. TCL – Transaction Control Language 事务控制语言

  • COMMIT – 提交事务。
  • ROLLBACK – 发生任何错误时回滚事务。
  • SAVEPOINT –在事务中设置一个保存点。
  • SET TRANSACTION –指定交易的特征。

    1. 数据库管理语句约60条(mysql)

1. 第 13 章 SQL 语句 1

2. dal db admin lan 数据库管理语句35条 1

2.1. Database Administration Statements 主从复制语句 约10条 1

2.2. 13.7.1 账户管理语句 5条 2

2.3. 13.7.2 表维护语句5条 2

2.4. 13.7.3 插件和可加载函数语句 5条 2

2.5. Other 10条 2

3. 其他语句 20条 3

3.1. 预处理与执行语句约5条 3

3.2. Other 约10条 3

3.3. 13.8 Utility Statements 5条 3

4. 加解锁2条 3

  1. H5 XML ui重要的标记语言

H5, Ui与一些数据传递用到的, h5(html HyperText Markup Language超文本标记语言(只包含顺序流程,目前缺乏选择循环流程但可用vue等扩展类库补齐,下一版h6可能会完善 )

XML  Extensible Markup Language可扩展标记语言,数据传递可能用到,现在很多用json代替

Css样式表标记语言,

web,android,ios,net wpf均使用xml 来描绘ui

    1. 文本框 按钮 多媒体等可视化控件标记
    2. 逻辑标记 if else for等目前可通过vue补齐
    3. Rdf标记 hCard、hCalenda等微格式标记

Resource Definition Framework) - 资源定位框架

    1. 存储类 (kv 数据库 store websql)

  1. 其他dsl

    1. 配置文件用的YAML  标记语言
    2. 文本检索用的的 正则表达式regular expression
    3. h5检索用到的css选择器表达式,XPath
    4. 调用外部进程或解释器 cmd shell语句
    5. Lamda表达式
    6. Other

,定时配置  time表达式Cron表达式

Xml 检索用到的XQuery与XPath
Spring的 SpEL表达式 (spring expression language ,spring表达式语言)

语言内部集成查询 linq Language-Integrated Query

Ognl  Object Graph Navigation Language对象图导航语言

书写文档可能会用到 折叠标识性的置标语言(Markdown等) 

Powershell

N1QL,用于json文档查询

JPQL  Java Persistence Query Language Java持久性查询语言

SPARQL   SPARQL Protocol and RDF Query Language) is an RDF query language

GraphQL    图查询语言 一种rest替代语言

CQL,, Contextual Query Language (CQL), previously known as Common Query Language,上下文查询语言(CQL),以前称为通用查询语言, 受限自然语言,可读性最佳,最接近自然语言

  1. 互相调用方式
    1. Socket 模型

例如典型的调用sql 语言是通过字符串嵌入宿主语言,,通过驱动api 通过底层socket 发往远程数据库解释编译执行,语句执行结果以 结果集数据返回来

驱动开发效率较为繁琐,一般调用其他种类语言较少使用这种方式

    1. http rest方式 
    2.  Cli 模式调用外部解释器方式

外部解释器Linux mac无扩展名,win一般为exe扩展名

Js脚本外部解释器nodejs比较常用(node.exe)

Php (php.exe )  ,java (java.exe )  python.exe  go.exe

外部解释器模式优点是兼容性好,功能完善

如需执行远程服务器脚本,可先调用sftp(linux ssh)powershell等api来执行

也可将远程脚本下载到本地,使用本地解释器执行

    1. 内部解释器(xx驱动)

比如sqlite本地数据库,sql即是内部解释器类库(驱动)来执行

Js脚本内部解释器 Nashorn 与 Rhino 等

Php脚本内部解释器  Quercus ,OndraZizka等

一般小型常用dsl都使用内部解释器模式,而大型语言(php js java python sql 等)则因为实现细节语句标准太多,内部解释器会滞后,所以一般使用外部解释器执行

    1. Cli包装器

看起来是个内部解释器驱动,实际是调用cli方式执行

    1. cli直接执行

比如go语言也可编译为本地代码模式,这是直接cli模式执行。此时无需解释器

    1. 如何直接调用编译型语言源码

可先通过cli调用编译器将其编译,然后执行

  1. Ref

Atitit 标记语言ML(Markup Language) v6

Atitit 常见的dsl attilax总结

SQL | DDL、DQL、DML、DCL 和 TCL 命令 - GeeksforGeeks

上下文查询语言 - 维基百科

声明式编程语言_百度百科

原文地址:https://www.cnblogs.com/attilax/p/15196800.html