热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

程序员的“语言奇缘”续篇:计算中心管理员小C的非正式编程之旅

(以下故事纯属虚构,旨在为编程爱好者提供一丝轻松时光,如有雷同,纯属巧合,敬请读者勿过度联想)在操作系统课程中,我们认识了计算中心的管理员小C。小C虽然并非科班出身,却凭借对编程的浓厚兴趣和不懈努力,逐渐在技术领域崭露头角。她不仅熟练掌握了多种编程语言,还经常利用业余时间开发一些实用的小工具,帮助同事提高工作效率,成为了团队中的技术明星。小C的故事激励着每一个热爱编程的人,证明了技术之路不问出处,关键在于不断学习与实践。

程序员的语言“艳遇史”(二)——计算中心管理员小C

(***以下小说情节纯属虚构,供朋友们在紧张编程后轻松一下,如有雷同纯属巧合,切勿对号入座***)

              第二个女孩   计算中心管理员小C

  操作系统课上,我们无比敬仰的课任老师“胖头余”唾沫横飞:

  “中国计算机事业的发展,需要一大批熟练掌握unix和c的专业人才……”

  “计算机系的第一母语,那就是c语言……”

  “招之即来,来之能战,战之能胜……”

  要不要这么上纲上线啊,知道的懂得是上操作系统课,不知道的还以为是***红卫兵动员呢。今天真倒霉,来得迟了一些,挤在第一排,被喷了一脸的唾沫星子,抹一把,咦,还带广式月饼味的。

  “胖头余”的可恶之处还在于,不允许我们用pc机dos系统完成大作业,必须到东校区计算中心,用Bull小型机完成,期末要检查我们的系统帐户。他还美其名曰,“学操作系统就要使用原滋原味的unix”。

  不去不知道,一去吓一跳。大伙儿到计算中心都被深深震撼了,果然是“原滋原味”,里面的家什如果配上穿孔纸带什么,就可以直接改名为“计算机历史博物馆”。小型机躲在玻璃罩里,横躺着。我们都怀着瞻仰毛主席遗容的心情,从它旁边经过,到里面的终端室上机。

  为什么我们在上机问题上比一年级嚣张很多呢?因为当时宿舍一帮死党凑份子买了一台286。原来一个个信誓旦旦,这个要追赶求伯君,那个说要分析dos内核。自从小肖搞来一套“大富翁”之后,好嘛,一伙人整天凑一起掷点数。过了一段更猛的料来了!麦东从香港弄来一套日本脱衣麻将……。原来准备研究dos内核的兄弟现在被指派了更重要的任务——破解游戏通关图片。一帮家伙流着哈喇子说,大家初三生理卫生都不及格,就指着您给复习了。

  大家知道,我是比较纯洁的。喂,别扔板砖!好吧,我承认我被诱惑过,但是你们看,我不还是老老实实来计算中心上机了吗。我的课业还算可以,就被宿舍人代会指派完成操作系统大作业的任务了。这帮禽兽!

  但是,我很快就有一个意外发现,那就是小C。

  小C是那种很耐看的女孩,虽说不上特别艳丽,但五官端庄,眼神静静的,像一汪清澈的湖水。平时总带着一丝微微的笑意,让你特别舒服。唉,这么好的女孩,当这个棺材屋子的管理员!学校管理层是怎么想的,看她年龄不大,不会是勤工俭学吧。

  小C的工作用我们的行话来说,属于动态内存分配范畴。我们进机房,要分配一个有号数的令牌,这就算指针了。墙上几十个挂件,每个对应一台终端,这就算空闲内存单元了。

  进来一个,拿走一个令牌,就算是指针被分配内存了。

  出去一个,交回一个令牌,就算是释放空闲资源了。

  如果你上去一看, 靠,“Segment fault”,指定位置上没有终端,属于使用null指针的情况。楼上大叔真是的,终端送修也不通知小C,搞得我还要跑下去换牌子。

  如果你发现位置已经有人,怎么回事?兄弟,这么不长眼,你18号怎么坐到28号位置来了。这属于指针越界访问情况,自己调解。

  一来二去,我和小C就熟悉了。原来她是高考落榜生,在计算中心当个临时工,还在参加自学高考。不过她unix系统用得比我老练多了,这管理员没白当,足可以当我老师。我厚着脸皮,多次以做机房卫生为代价,获得了美女给我下指导棋的机会。用现在时髦的话说,这是两种文明的对话——我代表dos星球,她来自外太空的unix行星。

  不过,要论高中数学什么的,就轮到她崇拜我的份了。妹妹,需要辅导早说嘛。哇,最近胳膊肘老疼,都是这做卫生给闹的。

  现在,我爱死bull小型机了,怎么看怎么觉的比宿舍的pc机人性化。每天上机和小C邮件发来发去的,成为编程之余一大乐事。大作业都完成了,我还往计算中心跑。很快,我的免费机时就over了,自己得贴钱。不过能看到亲爱得小C,我愿意。但是老蹭饭就不对了,弄得吃饭时一些人远远看到我,就假装上厕所掉头就溜。我怒了,以大作业不给参考进行威胁,局面才有所好转。

  期末快到了,马上要交操作系统和编译原理两门大作业。大家脸都绿了,一个个做奋发图强状,连生理卫生这么重要的课都没人研究了。操作系统大作业是用c语言模拟unix文件系统,他们还可以参考一下。不过编译原理大作业他们就无法参考我的了,因为我选的是实现c语言子集,他们都选了实现pascal语言子集。这帮人被c语言怪异的语法吓到了,而且还以为一年级的入门语言肯定更简单。我呢,在小C的精心栽培下茁壮成长,当然选c语言啦。

  他们不知道,虽然两者都源于Algol60体系,但pascal是理论家设计的语言,模型那叫一精美;而c是工程师设计的语言,为了便于实现,不懂砍掉多少东西。

  就以过程调用这块来讲吧。C语言的函数不允许嵌套,属于非块结构语言。任何时刻可以访问的变量,或者属于函数内部局部作用域,或者是全局空间(static也算全局),只有两个层次。这样,运行时间系统管理工作就简单多了,反正全局变量就是分配在内存中的固定位置了,栈帧不断堆叠就是了,下一个帧就代表调用者,可以返回,但是当前函数正常是不能访问调用者的作用域的。

  Pascal语言就麻烦了,过程可以嵌套,内部过程可以访问外部过程定义的变量。那时的编译课本,70%的部分是讲词法和语法分析,运行时间系统一语带过,讲得不清不楚,够他们喝一壶的。有的人使用什么静态链、动态链,有的人用Display表来管理帧指针,反正都深陷泥潭。

  末了,我的两门大作业都得了优。我正筹划着给小C飞鸽传书,一诉衷肠,好好庆祝一番。突然有人通知,“胖头余”要单独召见我。不会是要给什么奖学金吧。我乐呵呵的就跑去了。

  结果我听到了一个无比恐怖的信息,原来小C是“胖头余”的女儿。我们的“奸情”暴露了。什么啊,就牵过手,都传成什么样了!就差没开房了。不过“胖头余”好歹是大学教授,不会动粗,总之都是电视剧语言啦。还年轻,要把精力放在学习上,长痛不如短痛,以后不要再见面,天涯无处无芳草……

  杯具啊,我的初恋就这样被扼杀在摇篮中。

 

   待续: 法国外教prolog


推荐阅读
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • 深入解析 C 语言与 C++ 之间的差异及关联
    深入解析 C 语言与 C++ 之间的差异及关联 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 在VC++开发过程中,若遇到致命错误C1010,提示在搜索预编译头文件时遇到意外的文件结束,通常是因为未在源文件中包含必要的预编译头文件“stdafx.h”。为解决此问题,建议检查并确保在源代码的开头处正确添加了该预编译头文件的引用。此外,还可以通过项目属性设置中的预编译头选项进行配置,以确保编译器能够正确识别和处理预编译头文件。 ... [详细]
  • 探索 PHP 8.0 的重大更新:轻松获取年度月份数据
    PHP 8.0 引入了多项重要更新,包括增强的类型系统、全新的 JIT 编译器以及联合类型等特性。这些改进不仅提升了性能,还简化了开发流程。本文将重点介绍如何利用 PHP 8.0 的新功能轻松获取年度和月份数据,为开发者提供更高效、更简洁的解决方案。 ... [详细]
  • PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解
    PHP连接MySQL的三种方法及预处理语句防止SQL注入的技术详解 ... [详细]
  • 探讨 jBPM 数据库表结构设计的精要与实践
    探讨 jBPM 数据库表结构设计的精要与实践 ... [详细]
  • Django新手指南:第三步——构建你的首个项目
    在本教程中,我们将引导你完成创建第一个Django应用的步骤。通过实际操作,你将逐步了解Django框架的核心概念和基本功能。从项目结构到视图和模板的实现,我们将详细介绍每个环节,帮助你快速上手并构建出一个功能完整的Web应用。 ... [详细]
  • NOI题库(noi.openjudge.cn):1.7 编程基础之字符串 T31 至 T35 详解与解析
    T31至T35题目详细解析了字符串处理的基础编程技巧。其中,T31涉及P型编码,要求将一个仅包含数字字符的字符串转换为特定格式的编码串。例如,输入字符串“111223”应输出相应的P型编码结果。其他题目则涵盖了字符串的多种操作和变换方法,包括但不限于子串提取、字符替换和模式匹配等,旨在提升编程者对字符串处理的综合能力。 ... [详细]
  • 在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转
    本文探讨了在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转的技术细节。通过详细分析Swscale的工作原理和实际应用,展示了如何在Android环境中高效地进行图像格式转换。此外,还介绍了FFmpeg的全平台编译过程,包括x264和fdk-aac的集成,并在Ubuntu系统中配置Nginx和Nginx-RTMP-Module以支持直播推流服务。这些技术的结合为音视频处理提供了强大的支持。 ... [详细]
  • 如何在Android应用中设计和实现专业的启动欢迎界面(Splash Screen)
    在Android应用开发中,设计与实现一个专业的启动欢迎界面(Splash Screen)至关重要。尽管Android设计指南对使用Splash Screen的态度存在争议,但一个精心设计的启动界面不仅能提升用户体验,还能增强品牌识别度。本文将探讨如何在遵循最佳实践的同时,通过技术手段实现既美观又高效的启动欢迎界面,包括加载动画、过渡效果以及性能优化等方面。 ... [详细]
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • 在对TCP段的PDU进行重组的过程中,通过网络抓包技术发现了一个特定的TCP段重组PDU实例。经过查阅相关博客和技术文章,成功找到了有效的解决方案,为类似问题的处理提供了宝贵的参考。 ... [详细]
author-avatar
小冰的大夢想
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有