Programming languages 有哪些理论和/或实验编程语言特性?

Programming languages 有哪些理论和/或实验编程语言特性?,programming-languages,Programming Languages,我正在设计一种编程语言,纯粹是为了好玩,我想添加尽可能多的实验特性,只是为了让它的编程完全不同,而不是像Brainf*ck或Malbolge那样糟糕 然而,我似乎很不擅长为它想出新的东西,但我确信有很多东西已经被谈论过了,但从未真正尝试过 目前有哪些实验性语言特性或概念没有在主流语言中实现 例如:如果我在1960年问这个问题,答案可能是“面向对象编程” 我确信计算机科学家(最近)提出了许多未实现的想法,至少有人告诉我是这样。DWIMNWIS(照我的意思做,而不是照我说的做) 更严重的是,一个

我正在设计一种编程语言,纯粹是为了好玩,我想添加尽可能多的实验特性,只是为了让它的编程完全不同,而不是像Brainf*ck或Malbolge那样糟糕

然而,我似乎很不擅长为它想出新的东西,但我确信有很多东西已经被谈论过了,但从未真正尝试过

  • 目前有哪些实验性语言特性或概念没有在主流语言中实现
例如:如果我在1960年问这个问题,答案可能是“面向对象编程”

我确信计算机科学家(最近)提出了许多未实现的想法,至少有人告诉我是这样。

DWIMNWIS(照我的意思做,而不是照我说的做)

更严重的是,一个绝对伟大的特性(很难实现)是语言的程序能够被证明不包含并发问题


至于必须具备的功能,我会说和。不完全是新的或理论上的(Lisp今年有多老),但功能强大且在许多语言中缺失。

当前的一个研究领域是。还有很多事情你可以用它们来做,但还没有完成。

阅读ACM和IEEE出版物,了解研究想法

这里有一个想法;如果有人写它,他们必须给我版权信用!自动内置任意矩阵模板,使这些矩阵不是数学类型,而是存储或结构类型。根据模板参数,这些矩阵在理论上可以像标量值一样简单,也可以像接近无限维的实体一样复杂,前提是计算机可以在不耗尽内存的情况下允许,但在实践中,这仅限于体系结构,操作系统和编译器的整数或整数类型大小的内在细节。因此,一个低维体积矩阵可以是3维,但内存不足,因为它可能看起来是这样的:
matrix matoutfbounds
,在一个更高维的矩阵之前,例如8D体积矩阵
matrix
。如果它们是“完美矩阵”,则可以进行简化。也就是说,无论有多少维度,每个维度都有相同数量的元素。例如:
都是完美矩阵。简化将是
矩阵
矩阵
相同,给出一个具有 4D结构中的96个元素。其中“矩阵”是具有许多元素的三维体积矩阵,但具有三维体积结构,因为我们当前的时钟和罗盘的运行速度为360度到整圈,60分钟,60秒,但浮子的存储元素太多

这将是一个可能包含在某人的项目中的C++库;但是这里的想法是让它成为一种内置的语言类型。然后,任何一个使用您的语言和编译器的人都可以随意使用这些。他们可以将其用于任意数量的维度,如此模板所描绘的:

// Header Declaration
template<typename ClassType, unsigned int...>
matrix{
}; // No need to show body just declaration for concept

// User Code Would Be
matrix<float,2,3,4,5,7> mat; // This would create a 2x3x4x5x7 matrix that is a 5th dimensional volumetric matrix

// Default type
matrix<int> mat2; // This creates a 1x1 matrix that would in essence be a scalar.
//头声明
模板
母体{
}; // 无需展示身体,只需声明概念即可
//用户代码将是
矩阵mat;//这将创建一个2x3x4x5x7矩阵,它是一个5维体积矩阵
//默认类型
矩阵mat2;//这将创建一个1x1矩阵,它本质上是一个标量。

现在我展示的是针对可变模板的当前C++语法。这里的想法是,这些矩阵容器将构建在类型中

想让它们数学化吗?当然可以,但用户必须定义自己的“算法、方法、函数或例程”才能这样做

它们必须独立定义的原因如下:

mat<float, 3,3,3> mat1; 3x3x3  3D Volumetric Matrix  -    27 elements
mat<float,   5,5> mat2;   5x5  2D Linear-Quadratic (Area) Matrix -  25 elements
mat<int,   6,7,8> mat3; 6x7x8  3D Volumetric Matrix -    336 elements

mat<bool, 8>      mat4;   1x8  1D Linear Matrix (Array); transpose?
                  mat4::transpose; // built in - now 8x1 matrix
                  mat4::transpose; // back to 1x8.

class TheMotherLoad {// Many members and methods };
// ...
mat<TheMotherLoad*, 9,9,9,9,9,9,9,9,9> mat9;
// simplified version
mat<TheMotherLoad*, 9^9> mat9
// A 9 Dimensional Volumetric container So the first the would be a Cube
// with its sides having a length of 9 cells where the Volume 9^3 is the 
// First Order of what a Volumetric Matrix is.  
// Anything less is linear or quadratic either it being a scalar, 
// translation, an array, a line, a point, a vector, rotation, quadratic and area )
// Now that we have a cube that has 729 elements and the next 
// three 9s which are the 4th, 5th & 6th dimensions would act as another
// 9x9x9 matrix surrounding the first 3 dimensions respectively. 
// Finally the 7th, 8th & 9th dimensions defines the "outer matrix" 
// that also has "9x9x9" elements. So in total the number of elements 
// in this matrix would be 729^3 and for every 
mat1;3x3x3三维体积矩阵-27个元素
mat2;5x5 2D线性二次(面积)矩阵-25个元素
mat3;6x7x8三维体积矩阵-336个元素
mat4;1x8一维线性矩阵(阵列);转置
mat4::转置;//内置-现在是8x1矩阵
mat4::转置;//回到1x8。
类TheMotherLoad{//Many members and methods};
// ...
mat9;
//简化版
mat9
//一个9维的体积容器,所以第一个是立方体
//其侧面有9个单元格,其中卷9^3为
//体积矩阵是什么的一阶。
//任何更小的都是线性或二次的,或者是标量,
//平移、数组、直线、点、向量、旋转、二次和面积)
//现在我们有了一个包含729个元素的立方体,接下来
//第四、第五和第六维度的三个9将充当另一个9
//分别围绕前3个维度的9x9x9矩阵。
//最后,第7、8和9维定义了“外部矩阵”
//也有“9x9x9”元素。所以总的来说,元素的数量
//在这个矩阵中为729^3
由于矩阵的性质决定了可以对其进行何种类型的数学运算,因此必须从外部进行

非顺序(来自数据流编程的想法),这样表达式在满足依赖关系时进行计算。以便:

print(msg)
msg = "Hello World" 
是一个有效的程序。所有变量都类似于电子表格中的单元格

    print i
    range(1..100) => i
    # prints 1 to 100

研究这种范式的变化传播特性的含义将是有趣的。然而,设计这样的语言是一个巨大的挑战,当考虑条件、迭代等以及可能出现的同步问题时,它开始变得混乱。

我想他们已经用COBOL完成了,是吗?哦没关系,现在已经没有很多语言不懂了