公共命名空间和RHP

news/2024/11/3 4:20:26/

概述

RHP的全称是:the little Robot that Helped me Program,帮我编程序的小机器人。
RHP必然存在,C语言的宏、C++的模板,都是RHP;更复杂的例子,是lex和yacc,它们是制作程序的程序,也可以认为是RHP。可能从某个角度看,它和游戏中的NPC有点像。
公共命名空间是一张巨大的表格,里面收录了所有方言的所有句子。
公共命名空间可以把一行行源代码,翻译成一个个函数,在函数和函数之间,还有许多琐碎的事务。靠RHP自动完成这些琐碎的事务。
经典的《编译原理》认为可以从源代码到目标代码直接转换,虽然过程很复杂,但它总是一个函数。可是,由于语言的复杂性、敏感性,直接转换往往不容易实现。
语言的复杂性来源于任务的复杂性;
语言的敏感性指的是,修改语言的一小部分,它的含义就发生了较大变化。如果事无巨细全都要体现在源代码中,源代码将变得十分敏感。

美国的航天器,因为源代码里错了一个标点符号,几亿美金就没了。这是语言过于敏感造成的。

早期计算机科学家幻想的,用对话的方式和电脑交流,也就是现在的命令行。为什么不在编程序的过程中使用对话的方式呢?这时,RHP就出现了,它是“帮我编程序的小机器人”。
在这里插入图片描述
公共命名空间是一个四维空间,程序员控制两个维度,机器人控制两个维度,这样可以吗??

例1

C++的引用,可以省去一些敲击键盘的次数。用RHP可以模拟引用。加不加星号,什么时候加’&'号,就很琐碎,需要自动完成。

例2

print函数搭配不同的变量,如,整数、字符串,所需的功能完全不同。在C语言中是%d和%s的区别,在C++中则更智能一些,可以自动判断变量的类型。这一功能可以用RHP实现。

例3

debug函数用于显示调试信息,希望在程序的开头加一句debug off,就取消所有的debug作用。这一功能可以用C语言宏实现,更一般的描述为,用RHP实现。

例4

循环,直至按q退出:生成随机数至x打印x,每行5个
上述所有x添加进空列表y

这一段接近伪代码,用《编译原理》难以实现,需要定义很多复杂的概念,用RHP则有希望实现。

总结

公共命名空间是一张巨大的表格,由计算机语言的使用者来填充,并把对计算机语言的期望,写在里边。计算机语言的制作者,负责阅读公共命名空间,并制作计算机语言。
RHP是“帮我编程序的小机器人”,它必然存在!C语言的宏、C++的模板,都可以看作是这类机器人的简化版本。在没有RHP的那些年,程序员要处理许多琐碎的事务,这些事务应该由RHP替程序员自动完成。


http://www.ppmy.cn/news/1461888.html

相关文章

springmvc数据绑定

数据绑定 数据绑定流程 springmvc框架将ServletRequest对象及目标方法的入参实例传递给WebDataBinderFactory实例,以创建DataBinder实例对象 DataBinder调用装配在springmvc上下文中的ConversionService组件进行数据类型转换、数据格式化工作。将Servlet中的请求信息…

Shell之高效文本处理命令

目录 一、排序命令—sort 基本语法 常用选项 二、去重命令—uniq 基本语法 常用选项 三、替换命令—tr 基本语法: 常用选项 四、裁剪命令—cut 基本语法: 常用选项 字符串分片 五、拆分命令—split 基本语法: 六、 文件…

【保姆级】生成式网络模型基础知识(图像合成/语音合成/GPT)

生成式模型基础知识 初步接触生成任务 生成任务,顾名思义就是要去生成一个东西,比如生成图片/音频/文字等等。 大家接触最多比如chatGPT、stable diffusion、还有一些语音合成相关的东西。 那么问题来了,具体生成步骤是什么样的&#xff…

学习疲劳(科普)

由于长时间进行学习,在生理和心理方面产生了怠倦,致使学习效率下降,甚至到了不能继续学习的状况。疲劳现象有各种形态,主要可分为生理的(或身体的)疲劳和心理的疲劳。学习既包括身体的活动,也包括精神的活动…

【SpringBoot篇】基于Redis分布式锁的 误删问题 和 原子性问题

文章目录 🍔Redis的分布式锁🛸误删问题🎈解决方法🔎代码实现 🛸原子性问题🌹Lua脚本 ⭐利用Java代码调用Lua脚本改造分布式锁🔎代码实现 🍔Redis的分布式锁 Redis的分布式锁是通过利…

iOS 学习资料

git权威指南 git权威指南 iOS编程实战 iOS编程实战 Objective-C高级编程 iOS和OS X的多线程和内存管理 Objective-C高级编程 iOS和OS X的多线程和内存管理 Effective Objective-C 2.0 编写高质量iOS和OS X代码的52个有效方法 Effective Objective-C 2.0 编写高质量iOS和OS X代码…

Jsp+Servlet实现图片上传和点击放大预览功能(提供Gitee源码)

前言:在最近老项目的开发中,需要做一个图片上传和点击放大的功能,在Vue和SpringBoot框架都有现成封装好的组件和工具类,对于一些上世纪的项目就没这么方便了,所以需要自己用原生的代码去编写,这里分享一下我…

Android 蓝牙实战——蓝牙电话通话状态同步(二十四)

前面分析了蓝牙电话通话状态的广播,我们可以在蓝牙电话中实时监听蓝牙电话的状态,但如果是其他音乐类 APP 呢,在播放的时候也需要知道当前是否有通话正在进行,但是有完全没必要实时监听电话的状态,这就需要一个获取通话状态的方法。 一、通话状态处理 1、CallsManager …