零基础编程入门学习(一)

程序(Program)告诉计算机应如何完成一个计算任务,这里的计算可以是数学运算,比如解方程,也可以是符号运算,比如查找和替换文档中的某个单词。从根本上说,计算机是由数字电路组成的运算机器,只能对数字做运算,程序之所以能做符号运算,是因为符号在计算机内部也是用数字表示的。此外,程序还可以处理声音和图像,声音和图像在计算机内部必然也是用数字表示的,这些数字经过专门的硬件设备转换成人可以听到、看到的声音和图像。

程序由一系列指令(Instruction)组成,指令是指示计算机做某种运算的命令,通常包括以下几类:

对于程序来说,有上面这几类指令就足够了。你曾用过的任何一个程序,不管它有多么复杂,都是由这几类指令组成的。程序是那么的复杂,而编写程序可以用的指令却只有这么简单的几种,这中间巨大的落差就要由程序员去填了,所以编写程序理应是一件相当复杂的工作。编写程序可以说就是这样一个过程:把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上指令来完成。

编程语言(ProgrammingLanguage)分为低级语言(Low-levelLanguage)和高级语言(High-levelLanguage)。机器语言(MachineLanguage)和汇编语言(AssemblyLanguage)属于低级语言,直接用计算机指令编写程序。而C、C++、Java、Python等属于高级语言,用语句(Statement)编写程序,语句是计算机指令的抽象表示。举个例子,同样一个语句用C语言、汇编语言和机器语言分别表示如下:

一个语句的三种表示

C语言

汇编语言

机器语言

平台这个词有很多种解释,可以指计算机体系结构(Architecture),也可以指操作系统(OperatingSystem),也可以指开发平台(编译器、链接器等)。不同的计算机体系结构有不同的指令集(InstructionSet),可以识别的机器指令格式是不同的,直接用某种体系结构的汇编或机器指令写出来的程序只能在这种体系结构的计算机上运行,然而各种体系结构的计算机都有各自的C编译器,可以把C程序编译成各种不同体系结构的机器指令,这意味着用C语言写的程序只需稍加修改甚至不用修改就可以在各种不同的计算机上编译运行。各种高级语言都具有C语言的这些优点,所以绝大部分程序是用高级语言编写的,只有和硬件关系密切的少数程序(例如驱动程序)才会用到低级语言。还要注意一点,即使在相同的体系结构和操作系统下,用不同的C编译器(或者同一个C编译器的不同版本)编译同一个程序得到的结果也有可能不同,C语言有些语法特性在C标准中并没有明确规定,各编译器有不同的实现,编译出来的指令的行为特性也会不同,应该尽量避免使用不可移植的语法特性。

总结一下编译执行的过程,首先你用文本编辑器写一个C程序,然后保存成一个文件,例如program.c(通常C程序的文件名后缀是.c),这称为源代码(SourceCode)或源文件,然后运行编译器对它进行编译,编译的过程并不执行程序,而是把源代码全部翻译成机器指令,再加上一些描述信息,生成一个新的文件,例如a.out,这称为可执行文件,可执行文件可以被操作系统加载运行,计算机执行该文件中由编译器生成的指令,如下图所示:

图1.1.编译执行的过程

有些高级语言以解释(Interpret)的方式执行,解释执行过程和C语言的编译执行过程很不一样。例如编写一个Shell脚本script.sh,内容如下:

#!/bin/shVAR=1VAR=$(($VAR+1))echo$VAR

定义Shell变量VAR的初始值是1,然后自增1,然后打印VAR的值。用Shell程序/bin/sh解释执行这个脚本,结果如下:

$/bin/shscript.sh2

这里的/bin/sh称为解释器(Interpreter),它把脚本中的每一行当作一条命令解释执行,而不需要先生成包含机器指令的可执行文件再执行。如果把脚本中的这三行当作三条命令直接敲到Shell提示符下,也能得到同样的结果:

$VAR=1$VAR=$(($VAR+1))$echo$VAR2

图1.2.解释执行的过程

编程语言仍在发展演化。以上介绍的机器语言称为第一代语言(1GL,1stGenerationProgrammingLanguage),汇编语言称为第二代语言(2GL,2ndGenerationProgrammingLanguage),C、C++、Java、Python等可以称为第三代语言(3GL,3rdGenerationProgrammingLanguage)。目前已经有了4GL(4thGenerationProgrammingLanguage)和5GL(5thGenerationProgrammingLanguage)的概念。3GL的编程语言虽然是用语句编程而不直接用指令编程,但语句也分为输入、输出、基本运算、测试分支和循环等几种,和指令有直接的对应关系。而4GL以后的编程语言更多是描述要做什么(Declarative)而不描述具体一步一步怎么做(Imperative),具体一步一步怎么做完全由编译器或解释器决定,例如SQL语言(SQL,StructuredQueryLanguage,结构化查询语言)就是这样的例子。

1、解释执行的语言相比编译执行的语言有什么优缺点?

这是我们的第一个思考题。本书的思考题通常要求读者系统地总结当前小节的知识,结合以前的知识,并经过一定的推理,然后作答。本书强调的是基本概念,读者应该抓住概念的定义和概念之间的关系来总结,比如本节介绍了很多概念:程序由语句或指令组成,计算机只能执行低级语言中的指令(汇编语言的指令要先转成机器码才能执行),高级语言要执行就必须先翻译成低级语言,翻译的方法有两种--编译和解释,虽然有这样的不便,但高级语言有一个好处是平台无关性。什么是平台?一种平台,就是一种体系结构,就是一种指令集,就是一种机器语言,这些都可看作是一一对应的,上文并没有用“一一对应”这个词,但读者应该能推理出这个结论,而高级语言和它们不是一一对应的,因此高级语言是平台无关的,概念之间像这样的数量对应关系尤其重要。那么编译和解释的过程有哪些不同?主要的不同在于什么时候翻译和什么时候执行。

现在回答这个思考题,根据编译和解释的不同原理,你能否在执行效率和平台无关性等方面做一下比较?

希望读者掌握以概念为中心的阅读思考习惯,每读一节就总结一套概念之间的关系图画在书上空白处。如果读到后面某一节看到一个讲过的概念,但是记不清在哪一节讲过了,没关系,书后的索引可以帮你找到它是在哪一节定义的。

THE END
1.程序员入门教程非常详细从零基础入门到精通,看完这一篇就够了零基础编程入门先学什么?编程语言有几百种,我们应该怎么选择。想学习编程,加入互联网行业,哪一个更有前途?在小白学习编程会有各种各样的问题,今天小编我就来为你解答。 一、怎么选择编程语言 编程语言有很多种,但方向不同。每个人都需要根据工作方向、学习难度和发展前景做出选择。 https://blog.csdn.net/tingting11232/article/details/132793909
2.零基础免费学编程app软件大全零基础免费学编程app推荐下载PP助手为您提供零基础免费学编程app合集大全推荐,在这里我们为您提供零基础免费学编程app合集软件下载资源,零基础免费学编程app合集安卓版本、官方版本&老版本下载地址合集,还可查阅相关零基础免费学编程app合集攻略大全,欢迎到PP助手下载。https://wap.pp.cn/topic/495848/
3.如何零基础学编程60秒读懂世界编程已经成为当今世界的必备技能之一。本文将为您介绍如何从零基础开始学习编程,包括选择合适的编程语言、学习编程基础知识、实践项目以及持续进步的方法。 第一部分:选择合适的编程语言 对于零基础的学习者来说,选择一种适合初学者的编程语言是非常重要的。以下是一些适合初学者的编程语言推荐: https://blog.yyzq.team/post/351851.html
4.如何自学软件编程?零基础编程入门指南!零基础编程入门指南! 前言 零基础自学编程的动力是什么?在开启学习编程之路的时候必须搞清楚自己为什么要学编程?是因为工资高?还是对编程有浓厚的兴趣?还有自己有一定的编程基础想要继续提升自己? 其实对于这个问题需要具体分析,如果是单纯看到程序员工资高,而自己本身并没有什么兴趣,那我不建议自学,可以选择参加培训https://zhuanlan.zhihu.com/p/642599229
5.什么是编程及如何零基础自学编程首先,编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。 然后,想要以最短时间体会到代码的作用,那莫过于学习前端 HTML 了,配合CSS,你会立马写出几个静态页面,还需要学习一门叫的语言,才是编程语言,HTML和CSS只能https://www.meipian.cn/2mq18vs9
6.从零自学编程免费零基础怎样自学编程?确定一个方向,编程语言太多了:java、C++、python、PHP、C等,需要确定方向,从基础学起,建议零基础学编程的小伙伴从C语言开始学起,C语言入门比较简单,会提升自信心。 自学编程入门一定要阶段性的看到成果,这个“成果”并不是在“黑匣子”里面实现,要在用户展现界面呈现,很容易提升信心。 https://tool.a5.cn/article/show/71755.html
7.零基础学编程应该从哪入手随着信息时代的到来,编程技术成为了人们必须掌握的一项技能。然而,对于零基础的同学来说,如何入手编程学习却是一个挑战。下面将介绍零基础学编程的入门指南。 零基础学编程应该如何入手 1.了解基础概念:首先需要了解计算机的基本概念,如计算机系统组成、二进制数和ASCII码的基础知识。 https://www.hxsd.com/content/31624/
8.零基础学习编程入门攻略无论是设计师,还是创业者或者其他相关行业从业人员,掌握编程技能,会更有利于自己及事业发展,下面小编为大家分享了零基础学习编程入门攻略,欢迎了解。 在正式开始学习编程前,我们需要做到以下三点: 1.根据自身需求,确定学习目标 编程可以分为很多种,我们可以根据自身的需求,确定是学习网http://www.jjerw.com/news/759.html
9.菜鸟零基础如何自学编程?选型指导编程零基础如何自学入门? 确定一个方向,编程语言太多了:java、C++、python、PHP、C等,需要确定方向,从基础学起,建议零基础学编程的小伙伴从C语言开始学起,C语言入门比较简单,会提升自信心。 自学编程入门一定要阶段性的看到成果,这个“成果”并不是在“黑匣子”里面实现,要在用户展现界面呈现,很容易提升信心。 视https://www.iwanshang.cn/news-20230518280.html
10.零基础如何自学编程?6、很多编程零基础的人一上来就想学人工智能、大数据等这些看起来很有前途的方向,妄想通过培训半年就能找到好工作,这些都已经不切实际了。(特别刻苦肯学,有理工科背景,热爱数学、喜欢编程,能坚持学习一年以上的例外,国外这样的例子太多)。很多培训班不加限制不设前提就鼓吹这些领域的求职神话就是欺诈,严重误人子弟。http://www.meiwen.com.cn/subject/gveefctx.html
11.零基础如何学习编程下面是我在知乎一个关于零基础学习编程下的回答。 本文针对电脑只会开关机,有问题只会用360,却又希望能学习一点编程知识的普通网民朋友。 必须提前说明,本套教程学完,最快大概需要3个月。学完以后基本做不出什么软件,只能懂一些循环语句。 所以不适合希望尽快学成参加工作的朋友。 https://www.jianshu.com/p/099bb9572440
12.零基础学习编程从什么开始学起主要看要做哪方面的工作,语言都是相通的,学会一门语言再学其他语言很快就能学会,一般起点都是C语言https://www.imooc.com/wap/wenda/id/346680?t=236720
13.零基础免费学编程哪个好APP推荐零基础免费学编程哪个好下载现在属于互联网智能化的时代,编程也成为了很多人必须掌握的一门工具,但是现在还有很多人不知道2022零基础免费学编程app哪个好,接下来小编就为大家带来好用的编程APP推荐,小编接下来为大家带来的汇总也基本上囊括了此种软件当中的精品,这些软件都已经得到了大众的认可,如果大家对其中的某一款APP感兴趣的话,就可以点击底https://www.wandoujia.com/bangdan/403236/
14.学编程网学编程网一个面向编程初学者提供零基础编程技术与教程,程序员学习技术找资料的网站,Python教程、C++教程、PHP教程、WEB前端教程、java教程、小程序开发、公众号开发、影视剪辑、后期特效、算法与数据结构等课程在内的各种入门教程;是国内领先实用的综合性编程学习网站!https://www.xuebc.com/
15.零基础孩子如何入门学编程?二、注重基础知识和技能的学习 对于初学者来说,学习编程需要注重基础知识和技能的学习。孩子需要掌握编程语言的基本语法和编程思想,了解程序的基本结构和流程控制。同时,孩子还需要学习如何使用编程工具和开发环境,以及如何进行代码调试和测试。 在学习基础知识和技能的过程中,家长可以通过一些趣味性的编程项目来激发孩子的https://www.youkee.com/wenda/27313.html
16.编程入门指南:从零基础到掌握编程技巧,轻松打造程序员梦!编程入门指南是帮助初学者从零基础开始学习编程,并逐步掌握编程技巧的学习资源。以下是一些步骤和建议,以帮助您开始编程之旅: 确定学习目标:首先,明确您学习编程的目标是什么。是为了获取特定的工作技能,还是出于兴趣和个人发展?这将有助于您选择适合您的编程语言和学习路径。 https://www.simyk.com/newsinfo/6326849.html