以前有一段时间数学软件...

再过几周就是25年前的6月23日,1988年数学软件推出。

前一天深夜,我们还在复制软盘和包装盒。但6月23日中午,我在圣克拉拉的一个会议中心开始工作。数学软件首次公开:

Macintosh上的Mathematica v1.0

(是的,这是最初的启动屏幕,是的,数学软件运行在mac和各种Unix工作站计算机;个人电脑还不够强大。

人们都很兴奋,想看看会发生什么数学软件可以。有很多关于承诺的很好的演讲徳赢彩票游戏数学软件从计算机行业的领导者中,包括史蒂夫乔布斯(在未来)尽管他已经有一段时间没有公开露面了,但他还是很友好地来了。,那天在全国各地的书店刚刚开始销售:

Mathematica v1.0发布时发言者的签名

发生了很多事情数学软件从那以后的四分之一世纪。数学软件1.0已经变成了一个巨大的系统数学软件今天。当我看着25周年剪贴簿,看到有多少贡献,我很自豪数学软件创造了,发现和教育:

Mathematica的故事:剪贴簿

但对我来说,也许最令人满意的是我所建立的基本原则数学软件经受住了时间的考验。核心思想和语言数学软件1.0持续到今天(是的,最数学软件1.0代码今天仍将保持不变运行)。

但是,好啊,在哪里数学软件来自何方?它是怎么变成这样的?说来话长,真的。深深地与我自己的个人故事但尤其是当我展望未来时,我发现理解历史是如何演变的很有趣。

也许是第一个微弱的方向数学软件当我6岁左右的时候,我意识到我可徳赢彩票游戏以“自动”处理那些给我的冗长的加法。通过在两个标尺中创建一个“添加幻灯片规则”。我从不喜欢计算数学,但从10岁开始,我对物理越来越感兴趣,做物理需要做数学。

电子计算器在我12岁的时候就出现了,我立刻成为了一个狂热者。我开始用我的第一台电脑一个大桌子大小的东西,8千瓦18位内存,主要用纸带汇编程序编写。我试着用它做物理,没有大的成功。但当我16岁的时候,我发表了一些物理论文,离开了高中,当时在英国政府实验室工作,“真实”的理论物理学家基本上不使用计算机。但我做到了。交替使用HP台式计算器(使用绘图仪!)以及用Fortran编程的IBM大型机。

我基本上只是做算术,不过。但在物理方面我想做的是,有各种各样的代数。不仅仅是一个小小的代数。数量巨大。费曼图表中有成百上千项的表达式,如果要得到正确答案,所有这些都必须是完全正确的。

我想知道该怎么做。我想象着我一生都在追逐减号和2的因子。但后来我开始想用电脑来帮忙。徳赢彩票游戏然后有人告诉我其他人也有这个想法。在1962年欧洲核子研究中心的一次谈话中,我发现了三个项目,这是14年前开始的:red徳赢彩票游戏uce(用lisp写的)。Ashmedai(用fortran编写)和Schoonschip(用cdc 6000汇编程序编写)。

这些项目是专门的,不清楚除了作者之外还有多少人认真使用过它们。它们使用起来相当笨拙:通常你会提交一副卡片,然后一段时间后返回一个结果——或者更常见的是一个神秘的错误消息。但我设法开始和他们一起做物理。

1977年夏天我发现了阿帕网,或者是现在的互联网。当时只有256台主机。和@o 236去了麻省理工学院的一台开放式计算机,它运行一个名为macsyma的程序来做代数运算,可以交互使用。我很惊讶很少有人使用它。但没过多久,我就把大部分时间花在这上面了。我发明了一种在机器上来回工作的方法,尝试一下,看看发生了什么。并且经常做一些奇怪的事情,比如为一个积分列举不同的代数形式,然后通过“实验”看哪种形式正确地区分。

我的物理论文开始包含各种神奇的公式。没有想到我可以用电脑,人们开始认为我一定是某种伟大的代数计算器。我变得越来越雄心勃勃,试图用Macsyma做越来越多的事情。很快我就认为我是它最大的用户。但在1979年的某个时候,我达到了边缘;我已经长大了。

然后是1979年11月。我20岁,我刚刚获得了物理学博士学位。我在欧洲核子研究中心待了几个星期,计划我在物理方面的未来。我得出的一个结论是要做好物理工作,我需要比Macsyma更好的东西。过了一会儿,我决定,我真正有机会得到我想要的东西的唯一方法是我自己建造它。

因此,我开始从事将成为SMP(符号操作程序)的工作。我对当时的其他计算机语言有相当广泛的了解,这两个“普通”的算法都是程序化的,像Lisp和Apl。起初我画了SMP,我的设计看起来很像那些语言。但渐渐地,随着我对SMP的不同有了更多的了解,徳赢彩票游戏我开始尝试自己创造一切。

我觉得我有一些很好的想法。事实上,甚至我早期的一些SMP设计文档都有一个显著的数学软件-喜欢他们的口味:

早期SMP设计文档

回首过去文档,SMP是一个令人印象深刻的系统,尤其是当我开始设计它的时候,我才20岁。并非所有的SMP创意都是好的。作为一个长期的语言设计鉴赏家,我无法抗拒这篇文章的底部提到一些我“最喜欢”的错误。

即使在我早期的设计中,SMP是一个大系统。但不管什么原因,我一点也不觉得让人气馁。我只是想继续执行它。我想确保我做的每件事都尽可能好。我记得我在想:“我不正式知道计算机科学;我最好学一下。”所以我去了书店,把我在计算机科学上能找到的每本书都买了一半。然后把它们都读了。

那时我在加州理工学院工作。我邀请了我能找到的所有在世界各地从事相关系统工作的人来做演讲。我在加州理工大学成立了一个小“工作组”,其中包括理查德·费曼我开始从校园周围招聘员工,从事“SMP项目”。

早期的一个重大决定是应该用什么语言编写SMP。Macsyma是用Lisp写的,很多人说口齿不清是唯一的可能。但是一个名叫罗伯·派克的年轻物理研究生让我相信C是“未来的语言”,正确的选择。(罗布继续做各种事情,就像发明围棋语言一样。所以在1980年初,编写了SMP的C代码的第一行。

研究SMP的小组是一个有趣的小组。我的第一个新成员是克里斯·科尔,曾在IBM工作并成为APL爱好者,后来,他成立了一家相当成功的公司,名为Peregrine Systems。还有一些学生有各种不同的技能,还有一位编程爱好者教授,他是我在一些物理论文上的合作者。在这个过程中有一些怪癖,当然。比如写高效代码的人,都在同一条线上,函数的名称五颜六色,这样它们的组合就可以理解为小笑话。或者是一个非常聪明的本科生,他在这个项目上非常努力以至于他所有的课都不及格,然后他承诺不会碰电脑,但很快就发现他在给别人口授代码。

我自己为SMP写了很多代码(大约1000行/天)。我做了设计。我写了大部分徳赢彩票游戏文档。我以前从来没有管理过一个大项目。但不知何故,这一部分似乎从来都不是很困难。当然,到1981年6月,SMP版本1正在运行,甚至看起来有点像数学软件:

SMP的输出

的时间,SMP是一个非常大的软件系统(尽管它的可执行文件只有不到兆字节)。它最初的目的是做数学计算。但一路上我意识到即使做得好,我必须创造一个整体,相当一般,符号语言。我想我认为它有点像物理学,但不是处理基本粒子,我试图找到计算的基本组成部分。我发展了一种审美观:总是把最大的能力打包成最小数量的原语。有时我会困惑好几个星期,不知该怎么做,但最终我会想出一个设计,徳赢彩票游戏然后实施它。

我理解所有事物都可以用符号表达式来表示的想法。尽管符号索引列表的整个业务阻止了SMP拥有“表达式头”的概念,而这种概念在数学软件而且在符号表达式的内部实现中确实存在一些有趣之处,最显著的是关于以浮点形式存储所有数字的奇怪想法。徳赢彩票游戏(Tini Veltman,Schoonschip》的作者,后来获得了诺贝尔物理学奖,告诉我用浮点存储数字是他做过的最好的决定之一,因为fpus的算术运算速度比alus快得多。)

在SMP之前,我为Macsyma这样的系统编写了很多代码,我意识到我一直想做的事情就是说“如果我有这样的表情,我想把它变成这样。所以在设计SMP时,以模式为代表的符号表示族的转换规则成为中心思想之一。它不像在里面那么干净数学软件,当然也有一些古怪和遥远的想法。但是很多核心元素已经存在了。

最后,1981年SMP 1.0版文档的目录具有相当程度的现代性:

SMP v1.0目录

对,“图形输出”被降级为一个小部分,除了“内存管理”,还有迷人的“编程障碍”(即系统挂起)以及“统计表达式生成”(即做随机表达式)。但是“并行处理”已经存在,以及“项目建设”(即代码生成)。(SMP甚至有一种创建C代码的方法,编译它,而且,很可怕,动态链接到正在运行的smp可执行文件中。)有很多数学函数,还有数学运算——尽管它的功能远不如数学运算强大数学软件

但是,好的。所以SMP 1.0正在运行。应该怎么处理它?很明显有很多人会觉得它有用。它只在相当大的计算机上运行,也就是所谓的“微型计算机”,就像VAX一样,有几台大冰箱那么大,花了几十万美元。但是,我知道徳赢中国有很多研究和工程组织有这样的机器。

当时我真的对公司和企业一无所知。但我确实明白,支付员工从事S徳赢彩票游戏MP工作需要花费很多钱,很明显,获得这笔钱的一个好方法是出售SMP的副本。我的第一个想法是去加州理工学院的“技术转让办公室”。看看他们是否能帮忙。当时,办公室里基本上只有一个和蔼可亲的老人。很明显,他真的不知道该怎么做。我问他怎么会这样,假设在加州理工学院,类似的事情经常发生,他说,“问题是,教职员工大多自己创业,所以我们从不参与。“哦”,我说,“我能做到吗?”他翻阅了大学的章程,说:“软件是可版权保护的,这所大学不要求拥有版权,所以,是的,你可以。”

于是我去开了一家公司。但事情并没有那么简单。因为不久之后,大学管理部门突然决定,不,这不是好的。很奇怪很下流(“给我一刀,我在这里签字"等等。理查德·费曼和默里·盖尔·曼代表我求情。大学校长似乎不知道该怎么办。有一段时间,一切都被完全卡住了。但最终我们一致认为,大学会许可他们可能拥有的任何权利,即使他们是(非常愚蠢的,后来,当他们试图招聘计算机科学教师时,他们改变了软件的规章制度。徳赢彩票游戏

但事实上还有一个“最后一个问题”,由当时的大学教务长提出。他声称,如果我在大学工作,并且拥有公司的一部分,那么在大学和公司之间拥有许可证会造成利益冲突。我说,“这很容易解决:我要退学。”这似乎让我大吃一惊。但我退出了,搬到了普林斯顿高等研究院,在那里,正如当时的导演指出的那样,他们“把电脑送出去”的时候约翰·冯·诺依曼死后,所以他们不能太担心知识产权。徳赢彩票游戏

多年来,我想知道加州理工学院到底发生了什么事。就在几周前,我同意再次访问加州理工学院(以获得“杰出校友奖”),在那里的教员俱乐部吃午饭——我发现在下一张桌子上只有前加州理工学院教务长,现在快9徳赢彩票游戏5岁了。他立即深刻地回忆起他所谓的“沃尔夫拉姆事件”(Wolfram Affair),给我留下了深刻的印象。我们的谈话最终解释得更好了。

坦率地说,这比我想象的还要离奇。这个故事从某种意义上讲始于20世纪30年代,当阿诺德贝克曼在加州理工学院时,发明了pH计,然后离开去找到贝克曼的乐器。到1981年,贝克曼是加州理工学院的主要捐助者,以及董事会主席。与此同时,生物系主任(Lee Hood)发明了基因测序仪。他告诉我他曾多次尝试让贝克曼的仪器感兴趣,但是失败了,于是他创立了自己的公司(应用生物系统)这变得非常成功。在某个时刻,有人告诉我,阿诺德贝克曼心烦意乱,并告诉政府他们需要“阻止IP走出校园”。好吧,事实证明,当时在校园里发生的唯一相关的事情就是我的SMP项目。当时的教务长说他认为他有责任“处理”。(好吧,他还是个化学家,费曼和盖尔·曼,作为物理学家,声称有“关于物理学家的事情”,徳赢彩票游戏等)

尽管经历了这整个冒险,我命名为计算机数学公司的公司成立了。当时,我仍然认为自己是一个年轻的学者,没想到我会经营一家公司。所以我请来了一位首席执行官,他正好是我两倍大。在首席执行官和一些风徳赢彩票游戏险投资家的要求下,该公司计划与一家初创公司合并,这家初创公司正在进行他们认为非常热门的人工智能研发。

与此同时,SMP开始以“计算机数学”的名义销售:

计算机数学

有可怕的失误。首席执行官:“让我们构建一台运行SMP的工作站计算机”;我:“不,我们是一家软件公司,我已经看到这个斯坦福大学网络(SUN)系统将会比我们所能建立的任何系统都更好。

为SMP创建的代理广告

很快我就觉得整件事太令人沮丧了。SMP仍然是个摇钱树,虽然CEO不擅长赚钱,他很擅长养它,经历了令人眼花缭乱的几轮投资,直到许多年后终于有了一个平庸的IPO。

与此同时,我在做基础科学的时候非常开心,以及发现为一种徳赢中国新的科学事实上,SMP是我所做工作的重要先驱。因为正是我在为SMP语言发明计算原语方面的成功让我想到了为自然发明计算原语——并通过研究这些原语的结果来构建一门科学。徳赢彩票游戏

你可能会问SMP发生了什么事。它一直卖到后来的某个时候。数学软件被释放了。它的代码从来没有被用于数学软件。但偶尔我也会这样做,只是想看看它与数学软件随着时间的推移,很难找到运行SMP的计算机。也许15年前,最后一台可以运行smp的计算机停止工作。

好吧,我想,我总是收到一份SMP源代码的个人副本,尽管我已经很久没有看过了。那么现在为什么不在现代系统上重新编译它呢?但后来我记得:我有一个“好”的想法,那就是我们应该加密源代码。但关键是什么呢?我问了所有我能想到的人。但没人记得。

已经很多年了,我真的很想看到SMP再次运行。所以这是一个挑战。是像smp源代码一样加密的C程序的源代码。实际上,它是进行加密的程序的源代码:大约在1981年的Unix crypt实用程序的一个版本,“聪明地”修改参数等。有人能破解加密吗?最后把SMP从锁了这么久的奇怪的数字时间保险箱中解放出来。Wolfram | Alpha职业必须说,如果只是上传这个原始文件)

wolfram alpha pro在C程序上得到的结果与smp源一样加密

但回到主要故事。1983年我停止了SMP的工作,开始在基础科学之间交替,软件项目,以及我(非常有教育意义的)从事技术和战略咨询的“爱好”。我用了点SMP,但最后我写了很多C代码,通常将算法、图形和接口粘合在一起。

科学我开始的时候进展很顺利,很明显有很多重要的事情要做。但不是我自己去做,我决定我应该试着让其他人参与进来。作为其中的一部分,我决定创办一个研究机构,并从不同的大学得到了相当于投标的东西。伊利诺伊大学是赢家,所以在1986年8月,我去那里建立了复杂系统研究中心。

但到了这一点,我已经开始担心我的“其他人从事科学研究”的计划没有那么好。在到达伊利诺伊州的短短几周内,我就提出了B计划:建立我能做到的最好的工具,最好的个人环境,然后尽我所能做更多的科学工作。由于我很擅长计算机行业,我知道徳赢中国功能强大的软件系统很快就能在数不清的个人电脑上运行,这些电脑已经开始出现了。会有一个很好的市场,这将支持一个有趣的公司和环境。

1986年8月底,我决定尝试建立我的终极计算系统来完成我想要的所有计算,或者可以想象我会想要。

结果当然是数学软件

从SM徳赢中国P和我的其他徳赢彩票游戏软件经验中,我知道了很多关于应该做什么(不应该做什么)。但是能够从头开始让人耳目一新,只是想让设计正确,没有预先的限制。在SMP,代数计算一直是中心目标。但在数学软件,我还想讲很多其他的领域,绘图,程序设计,接口,不管怎样。我想了很多关于这个系统的基础,徳赢彩票游戏例如,想知道元胞自动机我学过基础科学。但是我还是继续回到了我已经为SMP开发的基本模式中,符号表达式和转换看起来完全正确,就像一个高层,然而,将军,计算表示。

如果不是因为SMP,我肯定会犯很多错误。但是SMP向我展示了什么是重要的,什么不是,问题在哪里。今天查看我的档案,我可以看到一个又一个的过程,一个又一个的解决我从SMP知道的问题。徳赢中国

与此同时,对于SMP,我组建了一个团队,并开始实际实施数学软件.这次我还和我一起创办了一家公司,担任首席执行官。每天我都要写很多代码。(令我懊恼的是,相当一部分代码仍然在运行数学软件今天,尤其是在模式匹配器和评估器中。)但是我最大的关注点是设计。然后我开始练习SMP,我在开发设计时写了文档。我想如果我不能在文档中清楚地解释一些事情,没人会理解的,它的设计可能不正确。一旦文档中有东西,我们都知徳赢中国道要实现什么,以及我们这么做的原因。

的第一个代码数学软件写于1986年10月。数学软件开始活跃起来了。我决定把这些文件作为一本书出版,已经写了几百页了。数学软件1.0将在1988年4月前准备好。

我对公司最初的计划是专注于研发,和分发数学软件主要通过计算机制造商。史蒂夫乔布斯是第一个数学软件,做一笔交易,把它和他每一台尚未发布的下一台电脑捆绑在一起。处理太阳,硅图形,IBM和其他一系列公司紧随其后。我们开始发送一些数学软件尽管这早在它存在的网络信息开始传播之前。一些媒体也开始报道(我仍然喜欢那种冰淇淋):

媒体报道

1988年春天的某个时候,我们正式将发布日期定为6月23日数学软件(没有Wolfram | Alpha,我不知道阿兰·图灵的生日,等等。有很多事情要准备。在那些日子里,发布软件不仅仅涉及到翻转开关。就像我记得我们在数学书打印。所以我带着一张硬盘飞到加拿大,亲自照看一台照相排版机,度过了一个漫长的周末,把拍出来的那盒胶卷交给一个在波士顿机场接我的人,然后把它送到印刷厂去。尽管有这样的冒险经历,就在6月23日前不久,一些神秘的邮件邀请:

1988年发布会邀请函

6月23日中午,房间里填满,我们已经准备好发射了数学软件进入世界。

Mathematica v1.0框

从那以后已经25年了。我们奠定的基础数学软件1.0-从我之前的经验中得知,事实证明,我的身体非常健壮,我们已经能够在它们的基础上进行构建。我的“B计划”是开发数学软件,然后用它来做科学,做得很好,并导致一种徳赢中国新的科学。从数学软件,我们已经能够建立一个大公司,以及建造类似的东西Wolfram | Alpha25年来,我们有幸看到数学软件以各种方式为世界上的许多事物作出贡献。

附录: SMP的经验教训

SMP是什么样的?以下是我为SMP文件:

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

为文档编写的SMP程序

在某些方面,它们看起来非常相似数学软件programs-complete与[…]对于函数,{…}对于列表和>对于规则但不知何故,可读性是数学软件没有,相反,SMP程序看起来非常神秘和晦涩。

最明显的问题之一是SMP代码中到处都是$%分别作为模式和局部变量前缀出现的字符。在SMP中,我没有数学软件分离模式构造的思想(例如_)从名字(如X)我认为强调哪些变量是局部变量很重要,但没有一种微妙的颜色。

在SMP中,我已经有了区分即时(=)及延迟(=)任务。但是为了适应像algol这样的语言,我用相当模糊的:::(为了规则,>是直接的形式,因为它是数学软件,而-->类似于:>S[…]类似于

在SMP,就像在数学软件,我用大写字母表示内置函数(当时在计算机上区分大小写是一件相当新的事情)。但是徳赢中国数学软件通常使用英文单词作为函数名,SMP使用了简短且常常晦涩的缩写。当我在SMP工作时,我对Unix的设计很感兴趣,并且想模仿它的短函数名的做法。如果smp只有几个函数的话,那可能没什么问题。但是有数百个函数的名字像Ps,教育与工业应用数学组织美国药典事情开始变得很难理解。当然,当时,还有一个问题:很多用户不能快速输入,这就提供了使用短函数名的动机。

为文档编写的SMP程序

今天看一下SMP文档很有意思。SMP有很多好主意——其中大部分我又用到了数学软件。但它也有一些非常糟糕的想法,很高兴这些想法不是数学软件。一个坏主意的例子是,即使一听到它就听起来很糟糕,那就是“变色龙符号”:每当被使用时都会改变其名称的符号。有点像一种过度自动化的模块)。

还有一些更为微妙的错误。就像这里的错误,从某种意义上说,是因为试图在统一系统方面走得太远。喜欢数学软件,SMP有列表的概念,喜欢{a,b,c}它还具有功能,喜欢f(x)。在我努力实现统一的过程中,我想也许可以把列表和函数的概念结合起来。

假设有一个链表v = { a,b,c }。(在SMP作业中是用:,所以这是可以写出来的v:{a,b,c})然后,例如在SMP中V〔2〕将提取列表中的第二个元素。但是这个符号看起来很像请求函数的值。V当其参数为2时。这给了我一个想法,也许我们可以将列表归纳为不仅仅是整数索引元素,但具有任意符号索引的元素。

在SMP,模式变量Xi在里面数学软件是书面的X。所以当一个人定义了一个函数f($ x):$ x ^ 2我们可以想象这只是定义F本身的值是一个符号索引的列表:{[XX]:$x^ 2 }.如果你想知道函数是如何定义的,你只是输入了它的名字F。返回的值将是表示定义的符号索引列表。

一个普通的向量类型列表可以被认为是{ 1〕:[2]:b,[3]:c}。我们可以用符号指数来表示{[1]:1,[$X]:$X F[$X-1].在一般符号表达中,零件编号也有某种统一。在某种程度上,这一切看起来都相当不错。为了描述函数和列表的统一概念,我打电话给F在里面f(x)一个“投影”,和X一个“过滤器”。(有人开玩笑说定义清单是“光学长椅”徳赢彩票游戏。)

但逐渐出现裂缝。很奇怪,例如,当一个人开始定义V〔2〕:v[3]:c。根据SMP的任务约定V就会有价值{[3]:c,〔2〕:B}。但是如果有人做出这样的定义五[1]:A吗?好吧,然后V突然不得不重新排序{a,BC}

当我们开始处理多参数函数时,情况就更奇怪了。它很好地定义了一个矩阵M:{{a,b},{c,d}},然后m [1]将是{a、b},,要么m [1]m[1][1]将是.但是如果一个函数有几个参数呢?会f (x,Y]一样f[x][y]吗?好吧,有时人们希望这样,有时不是。所以我必须想出一个属性("attribute" in数学软件)-我打电话来的对于每一个函数它应该如何工作。(今天更多的人可能听说过“讨价还价”,但在那些日子里,这种区别真的很模糊。)

SMP中的符号索引列表具有一些真正强大和优雅的特性。但最后,整个系统建成后,有太多的奇怪。所以当我设计的时候数学软件我决定不使用它们。多年来,虽然,我一直在想它们。当它发生时,徳赢彩票游戏现在,SMP 30多年后,我正在研究一些非常有趣的新功能徳赢中国数学软件这与符号索引列表密切相关。

我学习了大量的设计SMP,然后看到了设计的效果。对我来说一个特别难忘的时刻是这样的数学软件,SMP是纯函数但是不同数学软件,它没有像这样的语法&表示它们。这意味着它需要一个称为“标记”的特殊物体(书面的)表示纯函数何时应该给出一个文本,常数,价值。好吧,徳赢彩票游戏在SMP发布5年后,我正在看它的培训手册。突然跳出来对我说:“马克是SMP的谜”。在那一刻我意识到:这就是语言设计错误的样子。

SMP在很多方面都是一个非常激进的系统——一种编程语言设计中的极端实验。它对当时熟悉的编程结构中的大多数都没有足够的支持。相反,它中的几乎所有内容都围绕着符号表达式的转换规则的想法。在某些方面,我认为SMP做得太过火了。对于不熟悉的人来说。因为在某种意义上,编程语言所要做的就是将人类对计算的概念与计算机可以执行的实际计算联系起来。而且语言的强大程度,如果人类没有足够的上下文来理解它,那就没有什么好处。这就是为什么数学软件,我总是尽我所能让事情变得熟悉,限制不熟悉的地方,在那里它是真正需要支持的东西,基本上是新的。徳赢中国

设计一个系统的一件事就是知道什么最终徳赢彩票游戏会变得重要。在SMP中,我们花了很多精力在所谓的“语义模式匹配”上。假设有一个定义是f(x + y,美元$x,$y]:= {$x,$Y}。很明显这是匹配的f(a + b,一个,b]。但是呢?徳赢彩票游戏f(7)3.4)吗?在SMP,那个即使7的结构与表单不匹配x + y美元.这项工作花费了大量的努力。在一些简单的例子中可以看到。但最后,只是不经常出现,当它出现的时候,这通常是要避免的,因为它通常使程序的操作变得很难理解。

递归控制也有类似的东西。f[$x]: $x f[$x-1](没有结束条件f[1])进入一个无限循环试图求值f [1],F-(2),等。因为毕竟,在某个时刻,有乘以0的结果。为什么不直接给0?好吧,在SMP中,默认值是给0。因为不是一直沿着递归树的每个分支的评估运行,SMP会反复停止并尝试简化所有未计算值的分支。它既整洁又聪明。但当人们开始将这种行为参数化时,人们很难理解,最后没人用它。

然后是用户定义的语法。例如,允许用户设置U”(说,为“联盟“)成为一个中缀运算符。它非常有用,直到有人想要键入一个名称为“u”的函数。或者直到有人完全陷入自己的语法中,转移任何形式转义的解析。

SMP对我来说是一次很好的学习经历。数学软件如果我没有先做SMP的话就不会有那么好了。我觉得很满意的一件事是,我觉得我今天不会做任何一件。数学软件设计,对我来说,他们中的大多数现在都属于“简单问题”的范畴。

很有趣,虽然,SMP中一些不太好的想法经常会出现变化。事实上,我对我的现代设计敏感性很好奇,如果我今天运行SMP,我对它们有多确切的感觉。这是我希望从SMP中释放出来的部分原因。”徳赢彩票游戏数字时间安全“然后拿到它再次运行。我希望有人能帮助我。

9评论。显示全部

  1. 作为一个语言怪才,我很自豪。我正在设计我自己的语言,它统一了函数和Lua样式的*哈希表*(它的性能可以作为列表进行双重化)。与统一函数和列表不同,因为顺序是通过扫描整数索引在查询点确定的。其结果基本上就是掌握了面向函数编程的功夫语言,从Mathematica和APL语言中窃取大量的设计/函数,这在很大程度上是有帮助的。(我的语言模块系统特别有趣,我想知道你会怎么想)

    不管怎样,长话短说,作为一个有点偏颇的语言怪才,Mathematica的设计真的很天才,比我遇到的任何其他语言都要优秀。很长一段时间,我一直在想,为什么数学语言这么好。不是很好,为什么语言很好,但是这种语言是如何存在的呢,因为很明显,它需要一个“开明的世界线”,不仅要在C语言的海洋中创造出类似的东西,但是,通过许多其他人/公司认为错误的问题来坚持设计。

    自动抄表系统
  2. “:=”vs“=”的讨论使我想起了f[x_u]:=f[x]=tediousFunction[x]的“memoization”构造,其中,TediousFunction[X]是一个复杂的功能,其评估对主机的资源提出了挑战(这在20世纪90年代非常常见)。我最喜欢的数学特征之一,因为它是。

    MM托马斯
  3. 精彩的故事–感谢分享!

  4. 谢谢你的一篇非常有趣的文章。到达终点,我发现自己在想,在过去的25年里,没有看到什么潜在的进展。毕竟,几乎和圣人和数学家之间的时间一样多。

    “circa-1981 unix crypt”可能是一个256转子的谜机。已知的弱点,但更多的细节将是有用的。

    大卫·戴维斯
  5. 除了……
    文章中指出,用于加密源代码的crypt版本在某种程度上被“修改”。看看提供的文件,我在网上找到的密码源在大小上有很大的差别,以及本文提供的版本。原始Crypt = 1,528字节,而SMP Crypt版本为8,313字节。

    此处找到了我用作参考的Crypt版本:
    http://minnie.tuhs.org/cgi-bin/utree.pl?文件=v7/usr/src/cmd/crypt.c

    大小上的巨大差异不仅仅意味着微不足道的修改。

    同时,在文件Crypt.h中,有几行:
    #定义密码8
    #定义密码13
    Crypt强制执行一个13字符密钥,这可能就是帕斯伦所做的,但我在Crypt的在线源代码中找不到PASSNO的参考。我的猜测是,对SMP密码所做的修改之一就是多次“重新循环”被加密的文本通过编码器。为了保持东西整洁,我认为这是一个字符一个字符的基础上,而不是整个编码的明文。这只是对Crypt的SMP版本可能进行的修改之一,这些修改将使具有可疑价值的Crypt的在线“裂缝”可用。

    谢谢你

    乔尔M吉利
  6. 谢谢你的大脑旅游,从你的角度回顾过去,想知道你为什么不冒险进入分形学,三维动画合成模型,还有其他令人信服的基于数学的消遣。再一次,谢谢。

  7. 为了恢复您的加密版本的SMP,我建议您创建一个竞赛,获得的奖品值得进行此项挑战所需的努力。
    将其推广到业余和专业的加密社区。
    奖品可能包括Wolfram产品,订阅,甚至有机会和Dr。沃尔夫拉姆或为一个孩子或一群孩子参加夏令营。这些类型的激励措施可能会吸引这些群体,并在媒体上对任务进行宣传,从而使解密工作得以完成,同时对所有相关方都有利。

  8. 精彩的故事!很高兴听到克里斯·科尔的名字,他是我大学一年级时的物理助教。同时,我在博士论文中广泛使用了SMP,我的论文有一个附录,里面有很多页的SMP代码。

    谢谢你把这些记忆带回来!

    延斯
  9. 乔布斯对赢家很有眼光。通过对Wolfram发布的SMPCcode和docs的调查,我更加怀疑该语言是如何演变成现在这样可用的。多年来,我已经自学了一些语言。很久以前,在大学的时候,我在读过一到两次mm的书后不久就提出了“做一个更好的人”的想法:我把它作为一项出色的工作放在一边,而不需要重做。

    如果“新人群”(wr雇员)做出改变,阻止旧的共享笔记本工徳赢中国作,那将是一种耻辱。毫米波2)。与以后无法使用单一次要版本的自由语言和希望长寿的程序进行比较和对比,经常是因为错误的原因。

    我唯一的愿望是mm笔记本和共享者能够体验到WR关于兼容性、外延和笔记本的长期声明(就像我到目前为止所做的那样)。徳赢彩票游戏我只是警告说,新员工离职时,产徳赢中国品将面临复杂的升级链和笔记本电脑共享功能的丧失:除非能找到一种方法确保这种情况不会发生,而不仅仅是图书打印:我百分之百肯定会发生。谢谢,节日快乐!

隐藏注释»

Stvwin中国ephen Wolfram©有限责任公司| 条款γ RSS