
程序设计
程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。专业的程序设计人员常被称为程序员。
定义
程序设计=数据结构+算法
程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目标明确的智力活动。由于程序是软件的本体,软件的质量主要通过程序的质量来体现,在软件研究中,程序设计的工作非常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。程序设计通常分为问题建摸,算法设计,编写代码,编译调试和整理并写出文档资料五个阶段。
按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。
程序设计的基本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位,顺序性、并发性、并行性和分布性反映程序的内在特性。
程序设计规范是进行程序设计的具体规定。程序设计是软件开发工作的重要部分,而软件开发是工程性的工作,所以要有规范。语言影响程序设计的功效以及软件的可靠性、易读性和易维护性。专用程序为软件人员提供合适的环境,便于进行程序设计工作。
语言
(Programming Language)
是用于编写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言包含三个方面,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成程序的各个记号之间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但也不涉及使用着,语用表示程序与使用的关系。
语言的分类
程序设计语言的基本成分有:①数据成分,用于描述程序所涉及的数据;②运算成分,用以描述程序中所包含的运算;③控制成分,用以描述程序中所包含的控制;④传输成分,用以表达程序中数据的传输。
程序设计语言程序设计 程序设计语言 计算机 IT按照语言级别可以分为低级语言和高级语言。低级语言有机器语言和汇编语言。低级语言与特定的机器有关、功效高,但使用复杂、繁琐、费时、易出差错。机器语言是表示成数码形式的机器基本指令集,或者是 *** 作码经过符号化的基本指令集。汇编语言是机器语言中地址部分符号化的结果,或进一步包括宏构造。高级语言的表示方法要比低级语言更接近于待解问题的表示方法,其特点是在一定程度上与具体机器无关,易学、易用、易维护。
程序设计语言按照用户的要求有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算,以表示相应的计算过程,如FORTRAN、COBOL、PASCAL等。
按照应用范围,有通用语言与专用语言之分。如FORTRAN、COLBAL、PASCAL、C语言等都是通用语言。目标单一的语言称为专用语言,如APT等。
按照使用方式,有交互式语言和非交互式语言之分。具有反映人机交互作用的语言成分的语言成为交互式语言,如BASIC等。不反映人机交互作用的语言称为非交互式语言,如FORTRAN、COBOL、ALGOL69、PASCAL、C语言等都是非交互式语言。
按照成分性质,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如FORTRAN、C语言等。含有并发成分的语言称为并发语言,如PASCAL、Modula和Ada等。
程序设计语言是软件的重要方面,其发展趋势是模块化、简明化、形式化、并行化和可视化。
常见的程序设计语言
1、ActionScript
APL、
A+
J语言
Ada
汇编语言
AWK
Basic
Fortran
VBScript
Brainfuck
C语言
C++
C#
Clipper
COBOL
dBase
PASCAL
Delphi
Forth
FoxPro
F#
Fava
IDL
Java
JavaScript
J#
LISP
Lua
LOGO
Modula
Nuva
Perl
PHP
PL/I
Prolog
Python
R语言
Ruby
Scheme
Smalltalk
IceMaker
SQL
Tcl/Tk
Visual Basic
Visual FoxPro
XML
分类
按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它具有由基本结构构成复杂结构的层次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是指使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计风格,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。
规范
程序设计的基本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位,顺序性、并发性、并行性和分布性反映程序的内在特性。 程序设计规范是进行程序设计的具体规定。程序设计是软件开发工作的重要部分,而软件开发是工程性的工作,所以要有规范。语言影响程序设计的功效以及软件的可靠性、易读性和易维护性。专用程序为软件人员提供合适的环境,便于进行程序设计工作。
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
编程:设计具备逻辑流动作用的一种“可控体系”注:编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。
一、编程语言
机器语言:是机器能直接识别的程序语言或指令代码。计算机是基于二进制的0和1来处理运算,这种0和1的组合指令又叫做机器语言。
编译器:就像中国人和外国人说话要把中文翻译成英文一样。代码要运行,就要把代码翻译成机器语言,这个过程叫做编译,用来处理代码编译的软件叫做编译器。
编程语言:用来定义计算机程序的形式语言,用来向计算机发出指令。简单来说,就是人类和计算机进行交流的语言。
二、计算机如何处理程序?
按照冯·诺依曼存储程序的原理,计算机的工作流程大致如下:
用户打开程序,程序开始执行;
*** 作系统将程序内容和相关数据送入计算机的内存;
CPU根据程序内容从内存中读取指令;
CPU分析、处理指令,并为取下一条指令做准备;
取下一条指令并分析、处理,如此重复 *** 作,直至执行完程序中的全部指令;
最后,将计算的结果放入指令指定的存储器地址。
Unity开发者可以在一个文件夹中自定义程序集。定义明晰的依赖关系,可以确保脚本更改后,只会重新生成必需的程序集,减少编译时间。
在一个项目中会存在多个程序集,例如SDK集合、热更集合、插件集合、主集合等,如果未自定义程序集,修改其中一个集合的脚本后Unity再次编译,这时Unity会将所有集合都编译一遍,时间的浪费是我们所不希望的。当我们为每一个集合都定义程序集后,修改脚本只会编译对应的程序集。
通过在Unity中点击:Assets > Create > Assembly Definition菜单创建。该文件的扩展名是asmdef。
需要注意的是程序集名与文件名无关,真正有关联关系的是Inspector面板中Name对应的名称
该程序集我们还可以在解决方案中观察到
程序集依赖关系成树状,一旦确立依赖关系,低层级的程序集则无法调用高层级程序集里的类和方法。
这里我设立了三个程序集:UnityHotfix、UnityModel、UnityThirdParty;
他们之间的依赖关系如下
这样在Hotfix程序集里可以调用Model与ThirdParty程序集中的脚本,但是Model无法调用Hotfix程序集中的脚本
程序集会管理它当前所在文件夹和子文件夹中的脚本。
如果一个脚本当前文件夹中定义了一个程序集,它的父文件夹中也定义了一个程序集,该脚本会被归纳到它当前文件夹的程序集中
在平台中可以设置程序集编译平台
这样可以使某些程序集避免在一些特殊平台下被编译,常见的例如我们希望我们的Edtor程序集或热更资源程序集只在编辑器下被编译,那么我们就可以在平台设置中只勾选Editor
源程序(source
code)是指未编译的按照一定的程序设计语言规范书写的文本文件。
源代码(也称源程序),是指一系列人类可读的计算机语言指令。
在程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。C语言源代码即用C语言编写的一类可读的计算机语言指令。
计算机软件是计算机的灵魂,是计算机应用的关键。如果没有适应不同的需要的计算机软件。人们就不可能将计算机广泛地应用于人类社会的生产。生活,科研。教育等几乎所有领域,计算机也只能是一具没有灵魂的躯壳。目前。以信息技术。信息产业为代表的高科技术日益引起人们的关注,成为新的经济增长点。计算机软件技术作为信息技术的基础之一。已成为信息产业的主要组成部分。
对于计算机软件的概念。面在尚无一个统一的定义。世界上多数国家和国际组织原则上采用了世界知识产权组织(WIPO)的意见。结合实际加以修改。1978年世界知识产权组织发表了《保护计算机软件示范法条》这是该组织召集一些国家的专家组成专门小组研究制定的,其目的是为了对各国计算机软件立法提供参考意见,以便促进计算机软件的国际保护。在这一示范法条中。对计算机软件作了如下定义:计算机软件包括程序,程序说明和程序使用指导三项内容。“程序”是指在一计算机可读介质合为一体后,能够使计算机具有信息处理能力,以标志一定功能。完成一定任务或产生一定结果的指令集合。“程序说明”是指用文字。图解或其他方式。对计算机程序中的指令所作的足够详细的,足够完整的说明,解释。“程序使用指导”是指除了程序,程序说明以外的。用以帮助理解和实施有关程序的其他辅助材料。
在上述定义中,对“程序”的定义不够准确,按照这一定义,源程序(以高级计算机评议编写的程序)可能会被排除在“计算机软件”之外。因此各国在参考这一定义时,大多数都将“在与计算机可读介质合为一体后”这一条件删除,这样就可以明确无误地将源程序列入出境“计算机程序”之中了。
由于计算机软件产品的开发工作量大,开发成本高。面复制软件却极容易且费用低。因此,如何对计算机软件这一崭新形式的智力劳动成果给予保护,以保护软件开发商的应得利益和持续不断对软件开发投入的积极性,推动计算机技术的不断发展,已成为摆在当今世界各国政府面前的一个重要问题。目前,对计算机软件的保护还没有一个专门的法律,绝大多数国家对计算机软件的保护规定大都散见于版权法,专利法,商标法,
程序员的主要工作内容是设计、编写、测试和维护计算机程序。他们通常需要通过计算机语言和工具将软件需求转化为可执行的程序。具体来说,程序员的工作内容包括:
1需求分析:与客户或其他团队成员沟通,了解软件需求,分析问题并提出解决方案。
2设计:根据需求分析结果,设计软件架构、模块和流程,确保程序的高效性、可扩展性和可维护性。
3编码:使用计算机语言和开发工具编写程序代码,遵循编码规范和最佳实践。
4测试:编写测试用例并进行测试,以确保程序的质量和正确性。
5维护:对已有程序进行维护和优化,修复错误和缺陷,更新程序功能。
6文档编写:编写软件文档和用户手册,以便用户和其他开发人员了解软件的功能和使用方法。
7团队合作:与其他团队成员进行合作和沟通,如产品经理、设计师、测试人员等,以确保项目的顺利开展。
除了以上工作内容,程序员还需要不断学习新的技术和工具,以保持竞争力并提高自己的技能水平。
类定义最简单的形式如下:
1class ClassName:
类的定义就像函数定义( def 语句),要先执行才能生效。(你当然可以把它放进 if 语句的某一分支,或者一个函数的内部。)
习惯上,类定义语句的内容通常是函数定义,不过其它语句也可以,有时会很有用,后面我们再回过头来讨论。类中的函数定义通常包括了一个特殊形式的参数列表,用于方法调用约定——同样我们在后面讨论这些。
2进入类定义部分后,会创建出一个新的命名空间,作为局部作用域。因此,所有的赋值成为这个新命名空间的局部变量。特别是函数定义在此绑定了新的命名。
类定义完成时(正常退出),就创建了一个 类对象。基本上它是对类定义创建的命名空间进行了一个包装;我们在下一节进一步学习类对象的知识。原始的局部作用域(类定义引入之前生效的那个)得到恢复,类对象在这里绑定到类定义头部的类名(例子中是 ClassName )。
3类 Class: 用来描述具体相同的属性和方法的对象的集合。定义了该集合中每个对象所共有的属性和方法。对象是类的示例。
类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
实例变量:定义在方法中的变量,只作用于当前实例的类。
数据成员:类变量或者实例变量用于处理类及其实例对象的相关数据。
4方法:类中定义的函数。在类内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
构造函数:即__init()__,特殊的方法,在对象创建的时候被自动调用。
析构函数:即__del()__,特殊的方法,在对象被销毁时被自动调用。
实例化:创建一个类的实例,类的具体对象。就是将创建的类赋值给另一个变量。理解为赋值即可,a = class(),这个过程,就叫做实例化
对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟”是一个(is-a)”关系(例图,Dog是一个Animal)。
方法重写:如果从父类继承的方法不能满足子类的需求,可以对其 进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
以上就是关于什么是程序设计基本概念全部的内容,包括:什么是程序设计基本概念、编程的定义、程序集定义(Assembly Definition File)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)