编程语言的未来,通用代码生成器和超级语言

编程语言的未来,通用代码生成器和超级语言

我们生活在一个编程语言种类繁多,百花齐放的年代。形形色色的编程语言覆盖了软件开发的方方面面。如果说这些变成语言有什么共性的话,大家都知道,大多数编程语言是高级语言。

何为高级语言。首先是架构中立,可以在不同硬件上运行。其次是类似的抽象级别。高级语言的抽象大致分为两类。所有的高级语言都支持变量与语句的抽象。面向对象的高级语言支持类与方法的抽象。唯一特别的是SQL,它支持各种关系,也就是数据表的抽象。而且,SQL有一门专门的数学,关系代数来描写这种表级抽象。

那么,未来的编程语言会向何方发展呢?我认为可以通过回顾历史,我们可以看到编程语言发展的脉络。大致说来,编程语言有三个历史阶段:汇编语言,高级语言,面向对象的高级语言。根据广为人知的公式:程序=算法+数据结构。我们来看看这三个阶段的特点,汇编程序=操作码+操作数;高级语言程序=语句+变量;面向对象的程序=方法+类。可以看出,三种程序最大的不同在于抽象级别。随着时代的发展,编程语言的抽象级别在不断变大。

下一步是什么,我认为就是抽象级别的进一步扩大。从面向对象的抽象走向表级抽象。即类似与SQL级别的抽象。和SQL语言不同的是,新的超级语言不只是一门描述数据和数据储存的数据语言,而是描述包括界面在内的一门描述系统的语言。

我已经实现了使用这种理念的通用代码生成器阵列,包括Java通用代码生成器光,Golang通用代码生成器仙童和Rust通用代码生成器莲花,这些代码生成器的官网请见:

第三代动词算子式代码生成器:光SBMEU版: Java通用代码生成器:光,支持sbmeu,smeu,msmeu三种技术栈,支持MariaDB,MySQL8,Oracle,PostgreSQL四种数据库,支持Excel,PDF,Word.,PPT四种格式数据导出。已支持生成Vue前端,已发布2.4.0 电音之王版本尝鲜版五。已支持从源码编译。这种代码生成器是一种动词算子式代码生成器,通过域对象和各种动词算子的组合生成各种功能。

Go语言通用代码生成器:仙童: Go语言通用代码生成器:仙童,使用gin Web框架,支持MariaDB,MySQL8,Oracle,PostgreSQL四种数据库,支持Excel,PDF数据导出。已支持生成Vue前端。这种代码生成器是一种动词算子式代码生成器,通过域对象和各种动词算子的组合生成各种功能。采用电子表格形式的SGS2超级语言驱动。可以一键生成弹性登录模块功能。

Rust通用代码生成器:莲花: Rust通用代码生成器:莲花。为Java写成的Rust语言动词算子式通用目的代码生成器。代码生成物是rust 1.69环境。采用Axum 0.6.20,Tokio 1.32.0,sqlx 0.7.1数据库访问层和MariaDB, MySQL 8, PostgreSQL数据库。如果您熟悉这些通用代码生成器的使用就会发现,这三种代码生成器的驱动语言:SGS2超级语言非常相似,只是使用了不同的技术栈和不同语言的数据类型。甚至,这三种通用代码生成器的模板可以不加修改的使用语言兼容性生成不同的数据库后端。比如,您可以使用光的模板生成仙童的
Golang代码生成物和其配套的Nodejs前端。非常方便。而且这种SGS2超级语言是基于Excel数据表格的,非常直观,容易学习,可以为技术和业务人员所用。

如果您说这些通用代码生成器和流行的低代码平台有何异同?大的方面是一致的。不同之处在于,低代码平台是平台中心的,其技术的中心就是各自的低代码平台。而通用代码生成器是语言中心的。它的使命,是帮助程序员快速搭建程序骨架。所以它是以代码生成物后端的高级语言为中心的。当然,他对程序员在项目周期内全程,多次,迭代式的使用通用代码生成器进行了优化。但是,它的使命永远是程序员的瑞士军刀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S---通过curl访问api

1、列出所有的接口 curl --cacert /opt/kubernetes/ssl/ca.pem --cert /opt/kubernetes/ssl/default-admin.pem --key /opt/kubernetes/ssl/default-admin-key.pem https://10.240.184.74:6443/ 2、列出核心api的版本 curl --cacert /opt/kubernetes/ssl/ca.pem -…

手敲MyBatis(十四章)-解析含标签的动态SQL语句

1.前言 这一章主要的就是要解析动态标签里的Sql语句,然后进行条件语句的拼接,动态标签实现了trim和if标签,所以Sql节点就要加上TrimSqlNode和ifSqlNode,我们最终要获取Sql源,动态Sql语句需要一些处理,所以…

SpringCloud系列篇:核心组件之声明式HTTP客户端组件【远程消费】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringCloud的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 远程消费组件是什么 二. 远程消…

竞赛练一练 第22期:NOC大赛每日一练,python题目刷题第7天,包含答案解析

题目来自:NOC大赛创客智慧编程赛项Python 复赛模拟题(一) 第一题: 编写一个彩票游戏:随机生成一个不重复的五位数作为彩票号,游戏提示用户输入一个五位整数,然后根据下面的规则判断用户是否能赢得奖金,最后要求输出彩票号和奖金。 (1)若用户输入的数字和彩票的数字完…

c语言考试代码

文章目录 文件操作题 “%”:格式化字符串的起始标志。 “0”:表示使用零来填充输出字段的宽度。 “4”:表示输出字段的宽度为4个字符,如果输出的十六进制数不足4位,则在左边用零进行填充。 “x”:表示以十六…

MySql海量数据存储与优化

一、Mysql架构原理和存储机制 1.体系结构 2.查询缓存 3.存储引擎 存储引擎的分类 innodb:支持事务,具有支持回滚,提交,崩溃恢复等功能,事务安全myisam:不支持事务和外键,查询速度高Memory:利…

Spring Boot实现数据加密脱敏:注解 + 反射 + AOP

文章目录 1. 引言2. 数据加密和脱敏的需求3. Spring Boot项目初始化4. 敏感数据加密注解设计5. 实现加密和脱敏的工具类6. 实体类和加密脱敏注解的使用7. 利用AOP实现加密和脱敏8. 完善AOP切面9. 测试10. 拓展功能与未来展望10.1 加密算法的选择10.2 动态注解配置 11. 总结 &am…

CHS_02.1.1.2+操作系统的特征

CHS_02.1.1.2操作系统的特征 操作系统的四个特征并发这个特征为什么并发性对于操作系统来说是一个很重要的基本特性资源共享虚拟异步性 各位同学 大家好 在这个小节当中 我们会学习 操作系统的四个特征 操作系统有并发 共享 虚拟和异部这四个基本的特征 其中 并发和共享是两个…

机器人的末端执行器由什么零件组成,有什么作用。

问题描述:机器人的末端执行器由什么零件组成,有什么作用。 问题解答: 机器人的末端执行器是机器人机械结构的最末端部分,用于执行具体的任务和与环境进行交互。末端执行器通常由多个零部件组成,其主要作用是完成机器…

log4j RCE漏洞原理分析及检测

实现原理 log4j支持使用表达式的形式打印日志,比如 logger.info("system propety: ${sys:user.dir}");问题就在与表达式支持非常多样,其中有一个jndi就是今天的主题 logger.info("system propety: ${jndi:schema://url}");jdk将从…

学习笔记——C++ do while语句

作用&#xff1a;满足循环条件&#xff0c;执行循环语句 语法&#xff1a;do{循环语句}while{循环条件}&#xff1b; 注意&#xff1a;与while的区别在于do while 会先执行一次循环语句&#xff0c;再判断循环条件。 示例&#xff1a;打印0-9的数字 #include<bits/stdc.h…

图神经网络|9.3 邻接矩阵的变换

由于邻接矩阵中一般不会&#xff08;i,i&#xff09;等于1&#xff0c;除非第i个点上有自环。 而如果用邻接矩阵去乘上特征矩阵&#xff0c;那么将丢失自身向自身的贡献。 此时可以再邻接矩阵的基础上&#xff0c;再加上一个单位阵&#xff0c;从而使得最终的结果包含自身对整体…

RedisInsight - Redis官方可视化工具

一、RedisInsight 简介 RedisInsight 是一个直观高效的 Redis GUI 管理工具&#xff0c;它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控&#xff0c;并且可以在界面上使用 CLI 和连接的 Redis 进行交互&#xff08;RedisInsight 内置对 Redis 模块支持&#…

JavaWeb——新闻管理系统(Jsp+Servlet)之jsp新闻新增

java-ee项目结构设计 1.dao:对数据库的访问&#xff0c;实现了增删改查 2.entity:定义了新闻、评论、用户三个实体&#xff0c;并设置对应实体的属性 3.filter&#xff1a;过滤器&#xff0c;设置字符编码都为utf8&#xff0c;防止乱码出现 4.service:业务逻辑处理 5.servlet:处…

一文讲透使用SPSS统计分析软件绘制双轴线图

双轴线图主要用来展示两个因变量和一个自变量的关系&#xff0c;并且两个因变量的数值单位不同时的情形。具体来说&#xff0c;双轴线图是指在一幅图上有一个横轴和两个纵轴&#xff0c;适用于三个变量。两个纵轴分别表示一个变量&#xff0c;横轴变量同时适用于两个纵轴上的变…

【InternLM】Lagent智能体工具调用实践浦语·灵笔(InternLM-XComposer)图文理解创作Demo练习

目录 前言一、Lagent智能体工具1-1、什么是智能体&#xff1f;1-2、Lagent智能体 二、InternLM-XComposer&#xff08;图文理解创作模型介绍&#xff09;三、Lagent调用实践3-0、环境搭建3-1、创建虚拟环境3-2、导入所需要的包3-3、模型下载3-4、Lagent安装3-5、demo运行 四、I…

【Navigation】global_planner 源码解析

全局规划器 global_planner 功能包 文章目录 global_planner 功能包结构1、plan_node.cpp2、planner_core.cpp3、astar.cpp4、dijkstra.cpp5、quadratic_calculator.cpp6、grid_path.cpp7、gradient_path.cpp8、orientation_filter.cpp全局规划大都基于静态地图进行规划,产生路…

完善 Golang Gin 框架的静态中间件:Gin-Static

Gin 是 Golang 生态中目前最受用户欢迎和关注的 Web 框架&#xff0c;但是生态中的 Static 中间件使用起来却一直很不顺手。 所以&#xff0c;我顺手改了它&#xff0c;然后把这个改良版开源了。 写在前面 Gin-static 的改良版&#xff0c;我开源在了 soulteary/gin-static&a…

超维空间M1无人机使用说明书——52、ROS无人机二维码识别与降落

引言&#xff1a;使用二维码引导无人机实现精准降落&#xff0c;首先需要实现对二维码的识别和定位&#xff0c;可以参考博客的二维码识别和定位内容。本小节主要是通过获取拿到的二维码位置&#xff0c;控制无人机全向的移动和降落&#xff0c;分为两种&#xff0c;一种是无人…

C#中CultureInfo.CreateSpecificCulture(String) 方法

目录 一、CultureInfo 类 二、CultureInfo.CreateSpecificCulture(String) 方法 1.定义 2.示例 一、CultureInfo 类 提供有关特定区域性&#xff08;对于非托管代码开发&#xff0c;则称为“区域设置”&#xff09;的信息。 这些信息包括区域性的名称、书写系统、使用的日…