请教各种程序语言的比较
使用过C++, UnixShell, 还有VB, 现在看delphi, 脑子对这几个语言有点乱了, 希望高手们帮个忙:比较其中几种语言语法、数据结构、功能的具体实现及其编程环境等的不同,谈谈某一种语言的演变历史也行。先谢了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
使用过C++, UnixShell, 还有VB, 现在看delphi, 脑子对这几个语言有点乱了, 希望高手们帮个忙:比较其中几种语言语法、数据结构、功能的具体实现及其编程环境等的不同,谈谈某一种语言的演变历史也行。先谢了。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
[quote]原帖由 "系统工程师"]请问Cobol语言具体用在什么行业? 银行吗? 为什么呢[/quote 发表:
金融的确用的比较多,cobol主要用于是后台程序的开发(大机),别的行业有大机的不多。
COBOL语言,又称通用商业语言,在财会工作、统计报表、计划编制、 情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的 应用。COBOL程序由4部(DIVISION)组成,而每个部又由若干节 (SECTION)组成。
(1) IDENTIFICATION DIVISION.(标识部)
(2) ENVIRONMENT DIVISION.(环境部)
(3) DATA DIVISION.(数据部)
FILE SECTION(文件节)
FD...
SD...
WORKING STORAGE SECTION. (工作存储节)
(4) PROCEDURE DIVISION.(过程部)
2000年的来临,使得以往COBOL程序在数据部中定义的6位日期型数据变量(YYMMDD)的计算、比较及排序运行结果出现了错误。具体表现如下:
1 日期型数据变量的计算
例:COMPUTE WORKING-PERIOD = CURRENT-DATE - WORK-JOINED-DATE
如果用此例来计算工龄,则2000年以后,工龄可能出现负值错误,如: 000321 - 890720 (2000年3月21日 - 1989年7月20日)。
2 两个日期型数据变量的比较
例:IF DATE1 >; DATE2 PROGRAM1 ELSE PROGRAM2
如果DATE1与DATE2的年份都是2位,那么2000年时,这两个数据变量 中的值就变为00xxxx,从而使比较结果可能出现错误。
3 SORT语句中用日期型数据变量作为关键字进行排序
例:SORT SAMPLE-FILE ON ASCENDING KEY BIRTH-DATE
INPUT PROCEDURE INP-SEC
GIVING WORKF.
此例用出生日期作关键字排序。若出生年份为2位,则到2000年后排
序结果也会出现错误。
修正这些错误的具体方法如下:
(1) 根据系统设计说明书、文件说明书阅读程序,找出程序中的日 期型数据变量。
1文件节(FD、SD)中定义的数据变量;
2工作存储节(WORKING STORAGE SECTION)中定义的数据变量;
3源程序及拷贝程序中使用的数据变量。
(2) 将原来2位年份的日期型数据变量,在工作存储节中增加一个描 述4位年份的 变量(SORT语句的日期变量则必须紧跟在文件节中的 SD之后)。
例:1 01 WORK-JOINED-DATE PIC X(06). ?
01 WORK-JOINED-DATE-2000.(增加定义,插在工作存储节中)
02 WORK-JOINED-DATE-1 PIC XX.
02 WORK-JOINED-DATE-2 PIC X(06).
2 01 DATE1
PIC 9(06). ?
01 DATE1-2000
PIC 9(0
. (增加定义,插在工作存储节中)
3 01 SD SORT-FILE.
01 SORT-REC.
...
02 BIRTH-DATE
PIC 9(06).
...
?
02 BIRTH-DATE-2000 PIC 9(0
.(增加定义,插在SD最后)
(3) 相应过程部(PROCEDURE DIVISION)中的对应程序如下。
例:1
* *** 公历2000年对应 START 1997.12.05 ***
(注释对应开始)
* COMPUTE WORKING-PERIOD =
CURRENT-DATE - WORK-JOINED-DATE. (原语句注释掉)
...(CURRENT-DATE对应,与下边类似)
MOVE WORK-JOINED-DATE TO WORK-JOINED-DATE-2.
IF WORK-JOINED-DATE < '300000'(年份小于30,为2000年以后年份)
MOVE '20' TO WORK-JOINED-DATE-1
ELSE (年份大于30,为1900年以后年份)
MOVE '19' TO WORK-JOINED-DATE-1.
COMPUTE WORKING-PERIOD =
CURRENT-DATE-2000 - WORK-JOINED-DATE-2000
(用对应后的日期进行计算,结果没有错误)
* *** 公历2000年对应 END 1997.12.05 ***(注释对应结束)
2
* *** 公历2000年对应START 1997.12.05 ***(注释对应开始)
*IF DATE1 >; DATE2 PROGRAM1 ELSE PROGRAM2. (原语句注释掉)
IF DATE1 〈 300000
COMPUTE DATE1-2000 = DATE1 + 20000000
(年份小于30,为2000年以后年份)
ELSE
COMPUTE DATE1-2000 = DATE1 + 19000000.
(年份大于30,为1900年以后年份)
...(DATE2 对应,与上边类似).
IF DATE1-2000 >; DATE2-2000 PROGRAM1 ELSE PROGRAM2.
(用对应后的日期进行比较,程序流程没有错误)
* *** 公历2000年对应 END 1997.12.05 ***(注释对应结束)
3
* *** 公历2000年对应START 1997.12.05 ***(注释对应开始)
*SORT SORTF ON ASCENDING KEY BIRTH-DATE(原语句注释掉)
SORT SORTF ON ASCENDING KEY BIRTH-DATE-2000
(用对应后的日期作为键值,排序结果没有错误)
* *** 公历2000年对应 END 1997.12.05 ***(注释对应结束)
INPUT PROCEDURE INP-SEC
GIVING WORKF.
...
* *** 公历2000年对应 START 1997.12.05 *** (注释对应开始)
* RELEASE SORTFR.(原语句注释掉)
IF BIRTH-DATE 〈 300000 (年份小于30,为2000年以后年份)
COMPUTE BIRTH-DATE-2000 = BIRTH-DATE + 20000000
ELSE (年份大于30,为1900年以后年份)
COMPUTE BIRTH-DATE-2000 = BIRTH-DATE + 19000000.
(在排序语句RELEASE前,将键值对应完毕)
RELEASE SORTR.
* *** 公历2000年对应 END 1997.12.05 ***(注释对应结束)
按以上方法,就可以解决COBOL语言的2000年问题。
请问Cobol语言具体用在什么行业? 银行吗? 为什么呢
感觉就中国而言……语言和行业环境很有关系
如果确定了行业那就比较好把握需要的语言了
[quote]原帖由 "无双"]C++面向对象的开发中使用,另外许多系统上都有编译器,所以跨平台上好运行性能高,所以大的软件也用它开发。。。DELPHI只是开发界面,技术量不是很高,当然MONEY也不是很多。。。[/quote 发表:
如果只运行在window系统平台,VB和delphi也可以了。
至于MONEY,唉这年代就是经济挂帅,程序员也逃不掉这框。
现在各行业涌现出一些用VB和delphi编的软件,有点不是很规范,过一段时间使用者老觉得不好用,要作改。所过才萌发了学delphi的念头。
谢谢你的回贴,让我在迷雾中看到了一丝亮光。
虽然你作了概括式的发言,我也想知道大家是怎么看这几个语言的。
语言不分好坏,只是没有语言都会有它适用的场所。
即便是在大家眼里所谓VB这样的“弱”语言,也可以写出XP这样操作系统来。
我觉得学那么多没有多少用
只要精通一两种就可以了
如果是在UNIX上脚本语言是要精通的
因为可以很方便的帮助你做许多事
另外再选择C++或JAVA
VB只是写小程序
DELPHI只是开发界面,技术量不是很高,当然MONEY也不是很多
所以还是上面那两种语言学好了就OK了
VB 简单,但是功能不强大,写大代码时不容易维护,所以一般用于写小程序
DELPHI语法检查严格,另外有许多面向对象特征,只是需要有BORLAND编译器,跨平台性不好,另外开发界面时速度快,可执行程序速度也快,常用于开发界面
SHELL 语法简单,功能强大(可以使用系统中所有的命令来写),但执行速度慢,常用于写系统维护程序(如cron脚本)
C++面向对象的开发中使用
另外许多系统上都有编译器,所以跨平台上好
运行性能高,
用于开发系统级程序或是多平台程序
另外面有面向对象功能,所以大的软件也用它开发