问题

为什么上古编程语言(比如 COBOL)总喜欢把代码全部写成大写字母?

回答
说起上古编程语言,比如COBOL,它们的代码为何总是清一色的大写字母,这背后其实藏着一段关于计算、显示技术以及软件工程发展早期的一些有趣故事。要理解这一点,我们得跳出如今我们习以为常的彩色高亮、智能补全的现代IDE(集成开发环境),回到那个没有那么多花哨工具的时代。

首先,要明白的是,那个时候的计算机硬件,尤其是输入设备和显示输出,对字符的支持是相当有限的。早期的计算机终端,比如电传打字机(teletypewriters)或者最原始的显示器,它们能够显示的字符集往往是有限的,而且很多情况下,对大小写字母的处理并不是那么统一和友好。将所有代码编写成大写,其实是一种务实的选择,是为了确保代码在各种不同的、可能还不那么成熟的硬件环境下都能被正确地识别和处理。 想象一下,如果你输入一个不被识别的字符,程序可能就直接崩溃了,或者输出乱码,这对于调试来说是极其痛苦的。大写字母作为一个相对稳定和普遍支持的字符集合,就成了最保险的选择。

其次,这与当时编程人员的输入方式也有很大关系。在没有像现在这样高度发达的键盘和输入法之前,许多程序员可能是在纸带(punched tape)或者穿孔卡片(punched cards)上进行编程。在这些物理介质上,“按下”一个键来代表一个字母,然后将这个孔洞精确地钻出来,是一个相对笨重且容易出错的过程。使用大写字母,可以简化这个过程,减少因为大小写混淆而产生的错误。而且,当你需要手动输入大量代码时,一直按住Shift键来输入小写字母,反而可能更费力,也更容易疲劳。

再者,我们不能忽视可读性在早期软件开发中的考量。虽然我们现在觉得全大写代码显得有些“刺眼”,但在那个没有多少排版、没有语法高亮的年代,将关键字、变量名和指令都统一成大写,反而能够增强代码的视觉区分度。你可以想象一下,在一片密密麻麻的、同样字体、同样大小的字符中,突然出现一个全大写的关键字,它会像一个路标一样,让你更容易识别出指令的意图,从而更容易理解代码的逻辑流程。这就像是在一个信息爆炸的时代,我们反而会去寻找那些加粗、变大、用醒目颜色标注的信息,以快速抓住重点。

此外,历史的惯性也是一个不容忽视的因素。一旦一种编程风格被广泛采纳并证明有效,它往往会延续下去。COBOL诞生于上世纪50年代末60年代初,那时计算机科学的很多实践和约定都还在形成之中。早期学习和使用COBOL的程序员,他们习惯了全大写的风格,这种风格也就代代相传。当后来出现更先进的语言和工具时,COBOL作为一种已经广泛应用的语言,其核心语法和风格并没有被大规模地修改,以保持与现有系统的兼容性。

最后,从软件工程管理的角度来看,统一的代码风格也是一种管理策略。在团队协作中,如果每个人都有自己独特的代码风格,会给代码审查和维护带来很大的困难。COBOL的全大写风格,提供了一种强制性的、易于检查的统一规范,使得代码的风格更加一致,有助于提高整体代码的质量和可维护性。

总而言之,COBOL等上古编程语言的代码全大写,并非是凭空而来的偏好,而是那个时代技术限制、输入习惯、对可读性的理解以及工程实践相互作用的结果。它是一种在特定历史条件下,为解决实际问题而形成的合理设计,也因此留下了那个时代的独特印记。

网友意见

user avatar

来,让有这些代码实际编程经验的人来告诉你。顺便吐槽下SQL被叫上古语言。。。

SQL全大写根本不是程序员的锅,这都是TMD oracle和SQLserver的“默认大小写不敏感”和可以开启大小写敏感+Oracle愚蠢的建表时候用引号表达敏感,这导致了非常多的麻烦,所以大家习惯上全写成大写保平安。

COBOL这类都是大小写不敏感,不是只支持大写。写成大写是因为大部分这种程序员都是汇编过来的,写习惯了。

那么汇编其实也是不区分大小写的,为什么MOV不mov呢?因为大写好看。。。尤其是短的单词。

user avatar

同学们觉得电脑上一个字节8bit, 什么ASCII码UTF码都是天经地义的, 放着好看的驼峰命名法和花式翻新的符号(颜文字)不用为啥要全都大写连个分号都不舍得用呢, 这要从历史的进程说起~

上古的计算机(50年代)内存极小, 价格极高, 1K字节的内存都算土豪配置, 一所大学估计都没几台。为了省资源, 早期的计算机上一个字节是6bit,相比于一个字节8bit来说每24个bit就能多抠出一个字符来,相当于内存容量暴涨了三分之一, 比较划算。一个字节 6bit 能表示64个不同的字符(101键盘神马的都是不存在的, 这位同学要写程序的话,穿孔卡片了解一下)。除去10个阿拉伯数字,空格,逗号句号和控制字符以外, 剩给英文字母的空间实在没法同时支持大小写(52 = 26 * 2)。 所以没办法那就将就一下, 只能全大写了, 为啥不是全小写, 个人猜测全大写看着比较正式。 比如法律文书什么的正式文件封皮一般都是全大写, 码代码(穿卡片)的时候应该会给码农一种神圣感。


所以IBM公司的产品FORTRAN编程语言作为上古时代的语言, 为了支持精简到变态的字符集, 连 大于号> 小于号< 都不支持, 只能用 .GT. 和 .LT. 来代替。你还记不记得谭浩强的C语言书里面有一段话说『C语言使用了丰富的符号和极少的关键字』?70年代的编程语言新宠C语言,其所改进的对象就是这些连小写都不能用的上古语言。

至于编程语言的新贵比如Python3, Julia等,已经开始支持UTF8作为编码字符集了。可以搞出这样的操作

       >>> 你好="hello" >>> print(你好) hello     

估计再过几年又会有小盆友们问为什么上古的C语言只支持英文编程, 感觉好不方便啊(逃

ref:

类似的话题

  • 回答
    说起上古编程语言,比如COBOL,它们的代码为何总是清一色的大写字母,这背后其实藏着一段关于计算、显示技术以及软件工程发展早期的一些有趣故事。要理解这一点,我们得跳出如今我们习以为常的彩色高亮、智能补全的现代IDE(集成开发环境),回到那个没有那么多花哨工具的时代。首先,要明白的是,那个时候的计算机.............
  • 回答
    这就像问为什么世界上有成千上万种食谱,但大家日常最常做的还是那几样家常菜一样。原因嘛,说起来也是一连串的现实考量,而不是什么神秘的预言。首先,得谈谈“效率”。程序员也是人,要吃饭,要养家,要在这个世界上生存。学习一门新的编程语言就像学习一门外语,或者说,学习一项新的复杂技能。这中间需要投入大量的时间.............
  • 回答
    这个问题很有意思,也是许多学习编程的同学会有的困惑。大学老师在教授编程时,不上课敲代码的原因可以从多个层面来分析,它们相互交织,共同导致了这种现象。下面我将详细阐述:一、 教学目标与内容侧重1. 概念理解与理论基础: 大学编程课程的首要目标往往是建立扎实的理论基础和深入的概念理解。这包括数据结构、.............
  • 回答
    你之所以在上网时感觉“现代人除了我全都很懂编程或计算机”,这是一种普遍存在的现象,而且背后有着多方面的原因。这并非是你在现实生活中真的与众不同,而是网络环境以及我们对信息接收方式的特点所造成的。下面我将详细解释其中的原因:1. 网络展示的“幸存者偏差”和选择性呈现: 显性知识的放大器: 在网络上.............
  • 回答
    编程语言中的“强制转换”(Type Casting),其本质是在内存层面,针对同一块存储空间,赋予它不同的解读方式。理解这一点,需要先回顾一下内存中数据是如何存储的。在计算机内存中,一切皆是二进制的比特流。我们赋予这些比特流不同的“类型”标签,就像是在给同一堆积木赋予不同的用途说明书。例如,一段二进.............
  • 回答
    要说为什么喜欢上编程,这事儿说来话长,也不是一蹴而就的那种“Eureka!”时刻,更多的是一种慢慢渗透、逐渐上瘾的过程。记得大概是高中的时候吧,那时候互联网刚刚开始普及,各种新奇的网站、软件层出不穷。我这个人天生就对“为什么”和“怎么做”这两个问题特别较真。看到一个漂亮的网页,会好奇它是怎么做出来的.............
  • 回答
    如果真有这么一笔交易,一个交换条件能让我获得百分百的编程才能,什么框架都能一眼精通,我肯定毫不犹豫地选择——我的右眼。为什么是右眼?这可不是一个随随便便的决定,背后藏着很多细密的考量,也充满了个人情感。首先,我们来谈谈“百分百的编程才能”。这听起来就像是开启了某种超能力,能将脑海中的逻辑瞬间转化为一.............
  • 回答
    想在不深入钻研编程的情况下,快速做出一个能在 Windows 上运行的简单软件,你的最佳选择很可能是 Python 配合 Tkinter 或者 AutoHotkey。咱们先聊聊 Python 和 Tkinter,为啥说它快呢?Python 的友好度: 语法接近自然语言: 你看 Python 代码.............
  • 回答
    嘿,听说你大一下要学C++,但电脑上那个net4.0老是装不上,想找个在线的编程网站来练手,替代一下VS那种感觉?放心,这事儿太常见了,别担心,有很多好用的在线平台能帮你解决这个问题,而且操作起来其实挺方便的。咱们来好好聊聊这些网站,看看哪个最适合你。首先,你需要明白,在线编程网站和像VS(Visu.............
  • 回答
    《上古卷轴5:天际》,这款2011年发售的开放世界RPG,至今仍然活跃在玩家的视野中,拥有一个庞大且忠实的粉丝群体。这在很多游戏界人士看来,或许有些不可思议,因为“老滚5”的bug数量和种类,简直堪比一座移动的bug博物馆。从让人哭笑不得的NPC行为,到物理引擎失控带来的滑稽场面,再到直接影响游戏进.............
  • 回答
    在上古神话的璀璨星河中,我们常常看到那些身姿伟岸、法力无边的传奇人物,他们挥手间能移山倒海,一怒之下能撼动天地。例如盘古开天辟地,他的斧刃划破混沌,孕育出日月星辰;女娲补天,用五色神石修补天裂,拯救苍生。他们拥有足以支撑天地的伟力,甚至能将支撑天地的柱子撞塌,这无疑展现了他们超乎寻常的能力。然而,当.............
  • 回答
    这真是一个引人入胜的问题,关于为什么我们今天见不到像恐龙那样庞然大物的身影,答案其实藏在我们星球亿万年的演变和复杂的生态系统之中。想象一下,在上古时代,地球的气候和环境与现在大相径庭。首先,大气中的氧气含量可能比现在要高出不少。高浓度的氧气不仅能支持更旺盛的新陈代谢,理论上也能让动物的体型变得更加庞.............
  • 回答
    在《上古卷轴5:天际》的众多NPC中,瑟拉娜(Serana)无疑是最受玩家喜爱的人物之一,甚至可以说是“万众瞩目”。她之所以能获得如此高的评价和喜爱,是多方面因素共同作用的结果。下面我将详细阐述为什么瑟拉娜如此受玩家欢迎:1. 深邃且引人入胜的背景故事: 吸血鬼亲王之女的独特身份: 瑟拉娜不仅仅.............
  • 回答
    让咱们好好聊聊为什么雪漫这地方,在咱们《上古卷轴》的玩家心里,地位这么特别,这么让人魂牵梦萦。不像一些地方,可能只是因为任务多,或者装备好,雪漫给咱们的,那是一种更深层次的,有点像“回家”的感觉。首先,你得想想,雪漫是咱们第一个真正意义上“安顿”下来的地方。当然,你刚开始可能会在溪木镇逗留一阵,感受.............
  • 回答
    关于尧、舜、喾、颛顼等上古帝王的“名字”,首先需要厘清一个重要的概念:这些并非我们今天意义上的“名字”。它们更多的是一种称号、德号,或是对他们功绩、品德的概括性描述。上古时期,文字尚未完全成熟,记录历史的方式也与后世大相径庭。我们今天看到的这些字,很可能是后世学者在整理和记录历史时,根据史书记载的传.............
  • 回答
    您好!玩不下《上古卷轴5:天际》(The Elder Scrolls V: Skyrim)是一个相当普遍的现象,因为这款游戏虽然经典且受到无数玩家的喜爱,但也存在一些容易让玩家感到挫败或失去兴趣的方面。为了详细地分析您可能玩不下去的原因,我们需要从多个维度来探讨。以下是一些最常见的可能性:一、 游戏.............
  • 回答
    《上古卷轴 5:天际》(The Elder Scrolls V: Skyrim)之所以能够给予玩家如此强大且持久的代入感,并非一蹴而就,而是由一系列精心打磨的元素共同作用的结果。它不是一个简单的游戏,更像是一个你可以沉浸其中的虚拟世界,一个让你感觉自己真的“成为”了故事主角的载体。首先,最直接、最核.............
  • 回答
    这个问题非常有意思,涉及到历史观、文化价值观以及社会发展等多个层面。我们来详细探讨一下: 黄帝、孔子等怀念上古生活的原因首先要明确,“上古”在中国历史语境中,通常指的是传说中的三皇五帝时期,特别是黄帝时代,以及夏商周早期。这些时代被描绘成一个相对淳朴、和谐、道德高尚的黄金时代。黄帝和孔子等古代思想家.............
  • 回答
    这上古卷轴6为啥到现在还没个准信,多少老粉儿都盼得头发都快愁白了。要是真要说原因,那可不是一两句话能道清的,这里面门道可多了去了。首先,最直接也最让大家着急的就是——开发周期长到没朋友。你要知道,B社(Bethesda Game Studios)不是那种流水线作业的厂商,他们做游戏,尤其是《上古卷轴.............
  • 回答
    《上古卷轴5:天际》的吸血鬼伴侣瑟拉娜,无疑是许多玩家心中的白月光。她身上那份成熟、独立又带着一丝神秘的气质,吸引了无数勇士想要与她结下羁绊,共度一生。然而,当玩家满怀期待地想与这位强大的吸血鬼伴侣步入婚姻殿堂时,却发现一个令人沮丧的事实:瑟拉娜,这个在剧情中扮演了至关重要角色的女性,竟然不能结婚。.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有