CodeGen概述

CodeGen是在协同开发环境中工作的软件开发人员可以用来生成源代码的工具。该代码可能是Synergy DBL代码,也可能是其他语言的源代码。CodeGen并不局限于为任何特定的开发环境或编程语言生成代码。

当然,你不能仅仅使用CodeGen生成任何你能想象得到的源代码。在生成代码之前,开发人员必须声明定义如何创建给定源代码的规则。这些规则在模板文件中定义。CodeGen解释开发人员在模板文件中定义的代码和指令,以便生成有用的输出。

不过,在模板文件中定义规则只是故事的一部分。为了真正有用,CodeGen还需要另一个信息源来定义要生成的内容的上下文。

大多数软件应用程序都围绕着数据的收集、表示、操作和存储。这些数据最终存储在某种类型的持久存储中,例如数据文件集合或关系数据库中的表中。当开发人员处理一段特定的源代码时,他们将他们所掌握的关于应用程序数据(元数据)的知识与规则或“业务逻辑”相结合,以便创建满足特定需求的源代码。CodeGen也这么做。

当开发人员在Synergy/DE中工作时,他们可以访问称为Synergy/DE存储库的优秀元数据源。存储库包含有关应用程序使用的数据结构以及这些数据结构的属性的大量信息。存储库还可以包含有关各种数据结构之间的关系的信息,甚至包含有关底层数据存储机制的信息。Synergy存储库是非常丰富的元数据源,也是CodeGen使用的元数据的主要来源。

对于使用Synergy/deuSynergy/DE UI Toolkiti工具箱来展示其应用程序用户界面的开发人员来说,可能还有另一个元数据源,称为窗口脚本文件。在某些情况下,CodeGen还可以使用这些文件中包含的元数据。

都是关于元数据的!gen在一个文件中结合了一些定义好的文本结构的信息。

基本原则

每次开发人员使用CodeGen生成代码时,他们通常提供两个主要信息:

1. 元数据的来源,通常是存储库结构的名称。

2. 定义要创建的内容的规则的模板文件的名称。

每次CodeGen生成一个输出文件时,它通常做三件事:

1. 从元数据源(通常是存储库结构)读取信息。

2. 从模板读取规则。

3. 将规则与元数据合并以创建输出文件。

CodeGen概述的更多相关文章

  1. TVM代码生成codegen

    TVM代码生成codegen 硬件后端提供程序(例如Intel,NVIDIA,ARM等),提供诸如cuBLAS或cuDNN之类的内核库以及许多常用的深度学习内核,或者提供框架例,如带有图形引擎的DNN ...

  2. 如何在TVM上集成Codegen(上)

    如何在TVM上集成Codegen(上) 许多常用的深度学习内核,或者提供DNNL或TensorRT等框架和图形引擎,让用户以某种方式描述他们的模型,从而获得高性能.此外,新兴的深度学习加速器也有自己的 ...

  3. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  4. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  5. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  6. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  7. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  8. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  9. Java消息队列--JMS概述

    1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...

随机推荐

  1. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

      目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...

  2. POJ3277 线段树段更新,点询问+二分离散化+暴力

    题意:       x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路:       首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...

  3. CVE-2018-0802:Microsoft office 公式编辑器 font name 字段二次溢出漏洞调试分析

    \x01 前言 CVE-2018-0802 是继 CVE-2017-11882 发现的又一个关于 font name 字段的溢出漏洞,又称之为 "第二代噩梦公式",巧合的是两个漏洞 ...

  4. nodejs-Stream(流)

    Node.js Stream(流) 描述++++++++++++++++++++++++++++++++++++++++++++++++++++ Stream 是一个抽象接口,Node 中有很多对象实 ...

  5. 简化mapstruct代码: mapstruct-spring-plus

    mapstruct MapStruct 是一个属性映射工具,只需要定义一个 Mapper 接口,MapStruct 就会自动实现这个映射接口,避免了复杂繁琐的映射实现.MapStruct官网地址: h ...

  6. (邹博ML)矩阵和线性代数

    主要内容 矩阵 特征值和特征向量 矩阵求导 矩阵 SVD的提法 奇异值分解(Singular Value Decomposition)是一种重要的矩阵分解方法,可以看做对称方阵在任意矩阵上的推广. 假 ...

  7. PHP 下载apk文件

    方式一.public function downApkFile(){ $path = Env::get('root_path')."apk/"; //路径 $file_name = ...

  8. 深入探索Android热修复技术原理读书笔记 —— 资源热修复技术

    该系列文章: 深入探索Android热修复技术原理读书笔记 -- 热修复技术介绍 深入探索Android热修复技术原理读书笔记 -- 代码热修复技术 1 普遍的实现方式 Android资源的热修复,就 ...

  9. Linux系统运行netstat命令时的过三关斩一将

    1.简介 这篇文章主要是记录在日常工作中遇到的一些问题,将其都总结整合到一起,方便查看,提高工作效率.小伙伴们看到标题可能觉得奇怪,不是过五关斩六将而是过三关斩一将.慢慢地往后看发现其中奥秘. 2.过 ...

  10. Windows进程间通讯(IPC)----WM_COPYDATA

    WM_COPYDATA通讯思路 通过向其他进程的窗口过程发送WM_COPYDATA消息可以实现进程间通讯. 只能通过SendMessage发送WM_COPYDATA消息,而不能通过PostMessag ...