




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
从零开始学编程1、 编程基础1、 计算机基础 计算机核心是处理器,处理器是个拨一下转一下的电子设备。拨就是时钟信号驱动(晶振在供电条件下产生周期震荡的电脉冲即时钟),转是指内部状态变化。这个状态变化会触发外围设备的进一步变化。在人为的设计下,就呈现出不同的对外表现和功能。2、 处理器的功能处理器的由指令寄存器和数据寄存器组成。指令寄存器中存的是指令,来个时钟触发,数据寄存器的状态就会根据指令不同而转变为不同的新状态。旧状态就是原数据,新状态就是处理结果。给外界的感觉就是处理器根据指令指示对原数据做处理,得到了运算结果.如 指令为“加” 原数据寄存器1的状态为数字“3”的表示, 数据寄存器2的状态为数字“5”的表示,来个时钟后,原数据寄存器1的状态变为数字“8”的表示。从效果上看:等效处理器执行了一次 3+5 = 8 的运算。除了运算功能,处理器的指令需要依次更新为下一条指令,数据寄存器的状态需要能够存储才有意义。这些就是从内存或闪存(U盘用的存储芯片)中取指令,运算数据从内存中取再存到内存中。内存中的数据可以被处理器改变,这种改变又会引起屏幕显示效果的改变或硬盘读写的发生或光驱的动作或声音的输出等。这就呈现除对人有意义的外在效果。3、 程序概念 程序就是一个行动指导书,一个电影剧本,一个计算公式,来指导处理器状态按计划有规律的进行变化,从而达到预期的效果。用计算机术语表达就是一系列指令,指导处理器有规律的运行.4、 程序分类 最原始的就是直接指导处理器运行的指令, 设计这样的指令序列并记录下来就形成了汇编语言, 汇编语言是用来指导一线工人如何一步步工作的. 汇编语言不方便做大工程, 将汇编语言进行抽象,汇总, 用新的抽象指令来代替一串汇编指令,这样的抽象指令也可组织乘一个指令序列,这就是高级语言 如“习语言”。 高级语言是指导公司、企业内各部门如何一步步协调工作完成公司目标的。 人是懒惰的,再偷些懒,就会希望能用自然语言来表达,让及其来适应人类语言,理解人类语言的意思而进行工作。这就是自然语言。 由于自然语言存在模糊和二义性,目前还没有实现,是未来的工作。5、 程序设计的相关过程 (1) 分析问题,构思处理过程 (2) 编写代码 (3) 解释执行 或 编译成目标代码后运行。6、 解释执行与编译执行的区别解释就是拿原文件来直接解析后运行,每次运行都需要解析原文件。开发者保存的是源文件,给使用者使用的也是源文件。 解释执行不便于保护开发人员的劳动成果,同时一定要有解释器的存在才能运行。 如VB就是解释执行的语言.编译执行是将代码通过编译转换为机器代码后再执行,开发者保存源代码,对使用者发布目标代码,由于机器代码很难阅读分析。可保护开发者的劳动成果。如C、C+另外还有一种介于两者之间, 先编译成中间代码,再对中间代码解释执行,配不同平台的解释器同样代码可在不同平台上运行。实现跨平台目的。节省开发者的劳动。 . 二、看例子来理解1、汇编语言例子 假设处理器可以识别的指令为:取数据,存数据,加,减,乘,除 , 处理器有数据寄存器1、数据寄存器2 希望完成如下运算: 2 + 3 * 5 假设原始数据分别位于内存单元 甲:2 乙:3 丙:5要求运算结果存在内存单元甲内:可设计汇编程序如下:取内存单元乙内容 到 寄存器1取内存单元丙内容 到 寄存器2做乘运算 (假设结果保存在寄存器1中 )取内存单元甲内容 到 寄存器 2做加运算 (假设结果保存在寄存器1中 )存寄存器1 中数据 到 内存单元甲中这就是汇编程序,执行这段程序即可得到预期效果.2、 习语言例子同样上面的运算,用习语言可以表达为:整数类型甲,乙,丙;甲甲乙丙;由以上可见,习语言表达比汇编语言精简,逻辑更清晰直观。3、 汇编语言汇编语言是使用处理器的指令集直接对硬件进行编程的,不同的处理器有不同的指令集和编程模型,所用的汇编语言也不同。汇编语言设计的活动依次有:1、 任务分析 或 构思2、 汇编语言实现3、 汇编,有报错的话则转步骤2修改。4、 连接,运行 5、 结果是预期的吗?不是则调试分析。6、 结束 由于汇编语言和硬件紧密相关,复杂度比较高,不建议一般人员学习。故此处省略不做进一步说明。4、 习语言习语言由预处理器、编译器、汇编器、连接器、调试器组成。习语言源程序是纯文本文件,可以使用任何纯文本编辑器进行书写和编辑。也可以使用WPS进行编写,保存时保存为纯文本文件即可。预处理器对源文件中的包含文件和宏进行解析处理,生成无预处理指令的习语言文件。然后由编译器进行编译,生成汇编代码。汇编器对汇编代码进行编译,生成目标代码文件,连接器将一个或多个目标代码文件与库文件进行连接,生成可执行文件。执行可执行文件,若碰到运行错误,可以使用调试器跟踪运行,分析软件存在的问题并解决。汇编器、连接器、库文件和调试器通常都和特定的操作系统、特定的处理器相关,差别比较大。本文将主要关注源文件的编写方法。习语言原文件由预处理指令、声明语句和函数体组成。(一)、预处理指令预处理指令以#开头。1、习语言支持的预处理指令有:#定义 xxx yyy :定义一个宏xxx 内容为yyy#包含 “文件名” :包含另外一个文件的内容到本文件中#如果 :判断表达式,若为真,则执行后续语句#或者 :如果前面的判断为假,则判断本行的表达式,若为真则执行后续语句#否则 :前面的判断都为假则执行本行后的语句#如果结束 :标志如果判断语句块的结束#取消定义 xxx :取消宏xxx 的定义#如果已定义 xxx :如果宏xxx 在本行之前已定义,则执行后续语句 #如果未定义 xxx :如果宏 xxx 在本行之前未定义, 则执行后续语句 如果条件语句后面的表达式必须为预处理期间可以计算的常量逻辑表达式,可包含如下预处理函数: 已定义( xxx )此预处理函数判断宏xxx 是否在本行之前已定义,已定义则返回真,否则返回假。2、 语言支持的内置宏有:_文件名_ :内容为当前文件名 字符串表示_行_:内容为当前行 整数表示_日期_:内容为当前日期, 字符串表示_时间_:内容为当前时间, 字符串表示3、 包含文件搜索路径“#包含”宏指令后跟的 “文件名” 可以有两种表示方法:双引号将文件名括起来 “文件名”或尖括号将文件名括起来 双引号引起来的包含文件将首先在当前目录查找,若找不到,再搜索“包含文件路径”.尖括号括起来的文件名则只在“包含文件路径”中搜索。“包含文件路径”为系统环境变量,可以包含多个搜索目录,用分号(;)进行分割。(2) 预处理器用法预处理器用法: 预处理 配置项 文件名配置项为可选项,可选配置项如下: -警告开 输出所有警告信息 -警告关 不输出标准警告信息 -搜索 路径 在接口文件标准搜索路径前增加搜索路径 -后搜索 路径 在接口文件标准搜索路径后增加搜索路径 -无标准路径 不使用接口文件标准搜索路径 -输出 文件名 指定输出文件 -定义 宏名字 预定义宏:宏名字 -定义 宏名字=值 预定义宏:宏名字等于值 -不定义 宏名字 取消宏名字指定的宏的定义 -无预定义宏 取消系统预定义宏 -无特殊宏 不定义特殊宏 -安静 安静模式,不显示版本信息 -版本 显示版本信息和设置 -帮助 显示帮助信息(三)习语言保留字1、编译指令#编译指令 #行2、类型保留词字符类型 , 字节类型 字类型 双字类型 汉字类型短整数类型 , 整数类型 , 自然数类型 小数类型 浮点数类型双精度类型 , 高精度类型 , 枚举类型 , 结构类型 , 联合类型,长整数类型 , 时间类型 长度类型 字符串类型 变参类型, 空类型 , 以上类型亦支持简短表示如下:字符 短整数 整数 长整数 浮点数 双精度; 小数 字节 自然数2、 控制用保留词如果 , 或者 , 否则 , 步进循环 , 重复 , 直到 , 当 , 分支 , 若等于 , 其他值 , 跳出 , 继续 , 跳转到 , 返回 , 开始 , 结束 , 3、 变量修饰保留词外部的 , 易变的 , 静态的 , 无符号 ,寄存器 , 4、 运算符保留词类型长度 , 加 , 减 , 乘 , 除 , 模除 , 加加 , 减减 , 等 , 加等 , 减等 , 乘等 , 除等 , 模等 , 等于, 不等于, 大于, 小于, 大于等于, 小于等于, 左移, 右移, 与, 或, 非, 位与, 位或, 取反, 异或, 4、 其他保留词类型定义 , 习调用, 标准调用, 内联, _汇编, 真, 假, 5、 工程构建器 (一)如果要做的软件项目比较大,通常用工程的方法来进行组织管理, 软件通常由多目录下的多个文件组成,为了方便多个文件的编译,就需要使用工程构建器来自动管理项目目标的生成和更新。工程构建器会读取“构建指导书”,根据其中的构建指令进行工程构建。工程构建器简称“构建”构建指导书主要是对目标和依赖项进行描述,当目标文件不存在或修改日期比某一依赖项的修改日期早时,则执行目标后续的命令行,这些命令行通常是对依赖项进行编译,重新生成目标文件。(二)工程构建器用法工程构建器用法: 构建 - = . .配置项为可选项,工程构建器支持如下配置项: 可选配置项: -路径 让工程构建器到指定路径下进行构建 -调试 打开调试模式 -测试 输出构建需要执行的命令,但不执行,测试用 -指导书 使用由指定的构建指导书进行构建 -搜索 添加一个构建指导书搜索路径 -宏函数 列表输出内置宏函数 $( ) -预处理 列表输出预处理指令 -定义 = 定义宏变量 -关警告 关闭警告信息 -安静 安静模式,不显示所执行的命令 -帮助 显示帮助信息如: 输入构建 执行,则查找构建指导书,并对其中的(缺省目标)第一个目标进行构建.输入构建 指导书 我的指导书 执行,则查找“我的指导书”进行分析和目标构建(三)构建指导书的编写构建指导书主要由目标、依赖项、命令行组成,还可以包含注释,变量定义,变量引用,宏函数调用等。1、 目标、依赖项、命令行的用法如下:目标 . : 依赖项 .命令行目标从行首开始,可以有多个,之间用空格分开,若有多个目标,则依次对每个目标进行是否需要更新的判断,若需要更新,则执行后面的命令行。依赖项可以是空或一个或多个文件名,若为空,则目标需要更新,若为一个或多个文件,则比较目标和依赖项的修改日期,过有任何一个依赖项的修改日期比目标新,则目标需要更新。命令行行首要有一个或多个空格,以和目标行进行区分,命令行可以有多行,每行代表一条命令。命令行若以“”开头,表示命令安静执行不输出;命令行若以“-”开头,表示忽略命令行返回的错误码。(通常工程构建器遇到命令行执行出错时,将停止后续命令的执行)。命令行可以包含任何合法的外部命令和命令参数,可以包含变量引用。2、 注释行注释行用法如下:【注释:xxx】或【注释】xxx或# xxx 或#xxx上面的“xxx”代表任意的注释内容,注释行通常从行首开始,(以和命令行进行区分),将使工程构建器忽略掉整行。3、 当一行过长时,可以在行尾用“”作为结束,另起一行继续书写。工程构建器把“”结尾的行和下一行作为一行对待。4、为了方便书写和移植,构建指导书中通常会定义一些变量,变量通常代表一个或一组短语,变量可用如下几种方法定义:4.1、变量名短语 :定义变量,内容为短语,短语中可包含对其他变量的引用,引用在此变量被引用时再展开。 4.2、变量名+=短语 :变量目前内容后面增加短语4.3、变量名 := 短语 :定义变量,内容为短语,若短语中含有对其他变量的引用,则引用在定义时即展开,引用变量的后续改变不会反映在变量内容中。4.4、变量名 ?= 短语 :如果变量没有定义,则定义变量,内容为短语。4.5、【定义 变量 短语】 :等效 变量 = 短语。5、变量的引用用法为 ¥(变量名)引用变量时,可对变量内容进行加工处理,使引用返回的结果更符合我们的需要。这时的变量引用引用用法为:¥(变量名:处理指令) 或¥(变量名:处理指令:处理命令:.)工程构建器支持的处理指令有:5.1取后缀 :取文件名的后缀 5.2去后缀 :去除文件名的后缀 5.3取路径 :取文件名中的路径 5.4去路径 :去除文件名中的路径 5.5去重复 :当变量内容为一组短语时,去除重复的短语(短语通常为文件名) 5.6模式替换: 模式1 = 模式2 模式中: *代表任意字符 ?代表任意一个字符. 如: *.习 = *.汇 将.习后缀的文件名替换为.汇后缀的文件名 * = *.临 在现有文件名后添加.临后缀 .甲 = .乙 将.甲后缀的文件名替换为.乙后缀的文件名 张三* = 李四* 将张三开头的文件名替换为李四开头的文件名.当有多个处理指令时,后面处理指令对前面处理指令处理后的结果继续处理。6、操作系统的环境变量可以在构建指导书中直接引用,工程构建器也有一些内置变量可使用。 为区分用户定义的变量,内置变量多以.开头或用特殊符号表示,下面是目前工程构建器支持的内置变量:.当前目录:执行工程构建器时的目录.目标:指要构建的目标文件全称 假设为 d:程序练习小明.习.目标文件:同上.目标后缀:取目标文件的后缀,上面例子为“习”.目标文件名称:目标文件全称去掉路径后的部分,上面例子为“小明.习”.目标文件名:目标文件全称去掉路径和后缀后的部分,上面例子为“小明”.目标路径:目标文件的路径,上面例子为“d:程序练习”.无后缀目标:去掉后缀的目标文件, 上面例子为“d:程序练习小明”.无后缀目标文件:同上.新文件:修改日期比目标近的文件全称.新文件名:新文件去掉路径和后缀后的部分.新文件名称:新文件去掉路径后的部分.无后缀新文件:新文件去掉后缀后的部分.源文件:目标依赖的源文件全称列表.源文件名:源文件去掉目录后缀后的部分.源文件名称:源文件去掉目录后的部分.无后缀源文件:源文件去掉后缀后的部分.首源文件:第一个源文件.首源文件名:第一个源文件去掉目录和后缀后的部分.首源文件名称:第一个源文件去掉目录后的部分.无后缀首源文件:第一个源文件去掉后缀后的部分(四)、预处理指令工程构建器支持的预处理指令使用方法如下:【预处理指令 】 或【预处理指令】 或#预处理指令 工程构建器支持的预处理指令为: 1: 【定义 】 :定义一个变量 2: 【取消定义 】 :取消一个变量的定义 3: 【显示 】 :输出一个短语 4: 【警告 】 :输出一个警告信息 5: 【错误 】 :显示出错信息,同时当前构建指导书的解析停止,不进行目标构建 6: 【如果 】 :条件判断语句,如果表达式为真则执行后续语句 7: 【或者 】 :条件判断语句,如果表达式为真则执行后续语句 8: 【否则 】 :前面的判断都不成立则执行后续语句 9: 【如果结束 】 :标志条件判断语句到此结束10: 【如果已定义 】 :条件判断语句,如果变量已定义则执行后续语句11: 【如果未定义 】 :条件判断语句,如果变量没有定义则执行后续语句12: 【或者已定义 】 :条件判断语句, 如果变量存在则执行后续语句13: 【或者未定义 】 :条件判断语句, 如果变量不存在则执行后续语句14: 【如果相等 】 :条件判断语句,如果短语1等于短语2则执行后续语句(大小写敏感)15: 【如果不等 】 :条件判断语句,如果两个短语不等则执行后续语句(大小写敏感)16: 【或者相等 】 :条件判断语句,如果短语1等于短语2则执行后续语句(大小写敏感)17: 【或者不等 】 :条件判断语句,如果短语1不等于短语2则执行后续语句(大小写敏感)18: 【如果相等DX 】 :条件判断语句,如果短语1等于短语2则执行后续语句(大小写不敏感)19: 【如果不等DX 】 :条件判断语句,如果两个短语不等则执行后续语句(大小写不敏感)20: 【或者相等DX 】 :条件判断语句,如果短语1等于短语2则执行后续语句(大小写不敏感)21: 【或者不等DX 】 :条件判断语句,如果短语1不等于短语2则执行后续语句(大小写不敏感)22: 【循环 取值 】 :开始一个循环体,变量依次赋值为后面的短语然后执行循环体23: 【循环结束 】 :标志循环体到此结束24: 【输出 】 :输出变量到系统环境25: 【不输出 】 :不输出变量到系统环境26: 【包含 .】 :包含指定的构建指导书内容到当前构建指导书中27: 【包含目录 .】 :增加一个搜索构建指导书的路径28: 【终止 】 :中止构建指导书,忽略后面的所有语句29: 【重定义 】 :始终定义一个变量30: 【执行命令 】 :执行外部命令31: 【虚路径 】 :定义文件搜索路径(五) 、宏函数宏函数的用法: ¥(函数名 参数1,可选参数2)工程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论