当前位置: 首页 > news >正文

公共命名空间,2024年10月的笔记

首先,我国选择C++做为竞赛语言,许多人学C++,学习的结果是:看到“公共命名空间”,就幻想出一个私有命名空间,其实,公共命名空间和C++的命名空间无关!

超简源代码

已知序列v={1,2,3,4,5},找出其中的偶数,把每一个元素乘以2,并显示。

方案1:
源代码模板,修改已有的源代码,就像在做填空题,而且还有标准答案做参考。这需要IDE支持,经典源代码中的某些部分不可修改,是“只读”属性。

方案2:
序列v={1,2,3,4,5}
筛选序列[v]中的[偶数]至[w]
序列[w]的每个元素[*2]至[u]
显示[u]

方案3:
{1,2,3,4,5} & 筛选偶数 & 乘以2 & 显示

方案3最诱人。结合“上下文容器”,方案2可以更简单一点儿。

{1,2,3,4,5} | 筛选偶数
筛选[{1,2,3,4,5}]中的偶数
筛选偶数({1,2,3,4,5})
以上三行分别是前置参数、中置参数、后置参数。

调用一段源代码,不是用函数,也不是对象,而是另一段源代码。一般来说,后者比前者简单。后者的后者,可以是自然语言;前者的前者,可以是汇编语言。

假设有“阿立芬多数”代替“偶数”,上述代码的实现和形式该做怎样的修改?

注:阿立芬多数,是作者虚构出来的,只是为了测试一种情况:计算机语言定型之后,又有新事物出现,我们该怎么办?当然是修改语言啦!

C+Python的设计模式可以参考,常见的功能,用C语言实现,高效;其它的,用Python来编写,方便。兼顾便捷与效率。

复杂性

语言的复杂性来自于任务的复杂性,将这种复杂性写在公共命名空间之中,或者说,分散于其中。而计算机语言是简单的。

这一想法来自于对C++的反思,C++过于复杂,这是不对的,计算机语言应该是简单的。如此说来,公共命名空间成了复杂的任务和简单的计算机语言之间的缓冲带?

形式和实现之间的关系?传统的编译原理导致任务一复杂,形式也跟着复杂起来了。结果,编程序成了一项困难的工作。理想的计算机语言不应该是这样的。

别忘了,公共命名空间还有一个目标:让2000年后的人们能读懂今天写的源代码。

以英语为例,单词可以连成句子,但任务的复杂性导致程序的实现不能简单连接。所以,需要以句子为单位来理解源代码。

再以数学为例,一个高维空间,需要完整的坐标,才能正确描述。比如说六维空间,需要6个数字组成的向量来描述。6个数字之间没有简单关系,要把它们都写出来才行。这相当于用6个单词组成一个句子。所以,再次得出同样的结论:需要以句子为单位来理解源代码!

公共命名空间和人工智能

我对人工智能了解不多,仅有的一点儿了解,是神经元网络的梯度下降法。在梯度下降法里,定义了损失函数,这可以理解为:神经元网络的当前状态和理想状态之间的距离。

由于这个距离采用的是广义的欧几里德距离,所以,导致了神经元网络的状态空间不是四维的,(究竟是高维的还是零维的,我也说不清),它无法和公共命名空间相对接。

若不改变这一现状,公共命名空间中的所有项目(包括方言、句子、冗余项、同位素)将失去它们原有的位置关系。例如,冗余项说的是:形式不同而内容完全相同的情况,例如姥姥和外婆、将和帅、兵和卒。在损失函数看来,它们不是精确相等的。

所以,期待“四维损失函数”出现,使得人工智能和公共命名空间能更好的衔接。但是,话又说回来了,有了填充完好的公共命名空间,用精确的字符串匹配函数即可处理源代码,用不到人工智能了。

公共命名空间和人工智能里的自然语言理解,走的是不同的道路。

http://www.lryc.cn/news/472885.html

相关文章:

  • frida脚本,自动化寻址JNI方法
  • ‌MySQL中‌between and的基本用法‌
  • Ceph 存储系统全解
  • C# ftp帮助类 项目实战优化版
  • 栈和队列相关|有效的括号|用队列实现栈|用栈实现队列|设计循环队列(C)
  • 云原生后端开发教程
  • TortoiseSVN小乌龟下载安装(Windows11)
  • Android adb命令获取设备id
  • Skywalking教程一
  • React中管理state的方式
  • 服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?
  • 【Linux】文件切割排序 cut sort
  • 零售EDI:HornBach EDI 项目案例
  • SpringBoot 集成RabbitMQ 实现钉钉日报定时发送功能
  • 基于java ssm springboot女士电商平台系统源码+文档设计
  • Matlab数字信号处理——基于改进小波变换的图像去噪方法(7种去噪算法)
  • leetcode hot100【LeetCode 70. 爬楼梯】java实现
  • Java异常2
  • 2024熵密杯初始题2
  • echarts属性之title
  • VUE errolog, vue 错误集
  • 驱动开发系列13 - Linux tasklet用法介绍
  • redis实现分布式锁,go实现完整code
  • 解析日期、编码
  • 【Qt】QApplication::restoreOverrideCursor():恢复鼠标光标到原始状态的用法解析
  • 重生之“我打数据结构,真的假的?”--2.单链表(无习题)
  • 【有啥问啥】视频插帧算法技术原理详解
  • Leetcode148,109以及二者的合并 -> Tencent面试算法题 - 无序双向链表转BST
  • 【蓝桥杯选拔赛真题77】python计算小球 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析
  • 获取Hive表备注