我1995年本科毕业,当时学校没有开设这门课程。数据库老师让我们自选语言学习,我数据库的课程用Turbo Prolog来做的。毕业后这么多年了,没有遇到一个用PROLOG编写程序的朋友,我也没有继续搞了。没想到今天还有人谈起这个,真让人回忆往事呀。
不知道现在流行的PROLOG版本是什么情况,如果不能支持正则表达式的话,可能实用性已经不大了。PROLOG的推理功能,是可以液卜猛用其它语言的递归、回溯功能来实现的。
最后还是说说的问题,你这样的专家系统在许多老得发黄的书上都有例子。做这样的系统程序设计是一个方面,规则的准备和评判也是重要的一个方面。
补充:使用PROLOG语言无需自己去推理,PROLOG语言本身就是推理机。
PROLOG语言很简单,你只需要做三件事情弊弊(也就是机器只有三中语句),告诉计算机有哪些事实、有些什么规则、要求什么目标。程序运行计算机就去求解目标,实际上工作量多的是输入事实,需要动脑筋的就是哪闹桥些规则,目标一般既不需要脑壳、也不需要多少体力。
逻辑程序设计提供了有用的程序设计语言(主要是Prolog)。除此之外,有时候,人工智能中有用的理论T可以表示为霍恩(Horn)子句集H,而要达到的目标G则可以表示为寻找变量x1,x2,...,xn的值使其满足表达式g(x1,x2,...,xn)。该问题有时可以通过运行由G和H组成的Prolog程序来解决。
将AI当作逻辑程序设计会有两种可能的障碍。首先,霍恩理论对一阶逻辑的研闭激究并不彻底埋侍。其次,用于表达理论的Prolog程序可弯态吵能效率极低。比执行表达理论的程序更多、更精细的控制是经常需要的。地图着色提供了这类问题的示例。
旗鱼科技是润建股份控股子公司,在人工智能领域深耕多年,产品有巧见云3D内容生产平台、3D LED大屏、VR/AR眼镜、无线会议室等,与军方和学院都有密切合作,感兴趣的话可以搜索看看。
将片内RAM的20H,21H,22H单元的内容依次存入片外RAM的20H,21H,22H中:
MOV R0,#20H
MOV R1,#03H用于控制循环次数
MOV DPTR,#20H
LOOP:
MOV A, @R0
MOVX @DPTR , A
INC R0片内RAM地址加一
INC DPTR;外部RAM地址加一
DJNZ R1,LOOP;未循环完3次,跳回继续移数值
SJMP $;停止
END
编程将片外RAM的1000H单元开始的100个字节的数据相加,结果存放于R7R6中:
MOV R6, #0
MOV R7, #0
CLR C;必须先将CY(进位标志)清零
MOV DPTR, #1000H
MOV R2, #100
LOOP:
MOVX A, @DPTR
ADD A, R6
MOV R6, A;存储低8位
JC ADD2;CY为一的话,跳转到ADD2,使R7加一(即低8位有进位的话,高8位要加一)
INC DPTR
DJNZ R1, LOOP
SJMP $
ADD2:
INC R7;R7存储高8位
RET
END
程序编写
1970
70年代早期,Charles Moore在他的语言Forth中写下了第一个有意义的程序。
Prolog方面的工作大约在此时开始了。
同样是在70年代早期的某一天,Xerox PARC由Alan Kay领正胡中导,开始了Smalltalk的设计工作。早期版本包括Smalltalk-72,Smalltalk-74和Smalltalk-76。
Pascal在CDC 6000-series电脑上的一个实现出现了。
编程器
Icon,SNOBOL4的一个后代产品问世。
1972
Konrad Zuse写的关于Plankalkul(见1946年)手稿终于出版了。
Dennis Ritchie设计了C。但是最终的参考手册却是在1974年发布的。
Prolog的第一个实现——Alain Colmerauer和Phillip Roussel的功劳。
1974
另一个COBOL的ANSI规范出现。
1975
Tiny BASIC,由Bob Albrecht和Dennis Allison设计(由Dick Whipple和John Arnold实现),运行在2KB内存的微型计算机上。一台4KB的机器是较为合适的,它将有2KB的内存应用于这个程序上。
Bill Gates和Paul Allen编写的一个BASIC版本以抽取每份拷贝版做李税的形式销售给MITS(Micro Instrumentation and Telemetry Systems)。MITS生产Altair,这是一种8080结构的微型计算机。
Scheme,一个LISP的“方言”,由G.L. Steele和G.J. Sussman设计。
Pascal用户手册和报告出版,Jensen和Wirth编写。许多人至今都认为它是Pascal方面权威的参考书籍。
B.W. Kerninghan描述了RATFOR——RATional FORTRAN。它是预处理程序,并且允许在FORTRAN中使用类C的控制结构。RATFOR被应用到了Kernighan和举山Plauger的“Software Tools”中,它出现在1976年。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)