本节重点

  • 理解编程语言是什么?

  • 大体明白,编程语言是如何与计算机底层通信的编程语言有哪些分类?

  • 分别列举主流编程语言的特点

  • 什么是编程,为什么要编程


一.什么是编程语言?为什么要编程?


  1. 编程
    :是个动词,编程==写代码,写代码是为了什么,为了让计算机干你想要干的事。比如,想跟别人聊天,就需要写个聊天软件,这个软件就是一堆代码的集合,这些代码是什么?这些代码就是计算机能理解的语言。


  2. 编程语言
    :计算机只能理解2进制,010101...,但是开发人员不能人肉输一堆二进制给计算机(虽然最原始的计算机就是这么干的)让他工作吧,这样开发速度太慢了。所以最好的办法就是人输入简单的指令,计算机能把指令转成二进制进行执行。


    例子:程序员想让计算机播放一首歌曲,只需要输入指令:

open "七里香.mp3"
play

计算机的CPU接受到这样的指令够,会把它转成一堆 只哟就cpu可以理解的指令,然后再讲指令编程各种对应的二进制。

              最终cpu取调用你额硬盘上的这首歌,通过音箱播放。

        

二.有哪些编程语言?

编程语言总体分为:机器语言、汇编语言、高级语言。如下:


  1. 机器语言

    由于计算机内部职能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有木编程序才能被称为计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便于阅读和书写,且依赖具体机种,局限性很大,机器语言属于低级语言。


  2. 汇编语言

    汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要变成这将每一步具体的操作用命令的形式写出来。汇编程序的每一句执行职能对应实际操作过程中的一个很细微的动作,因此汇编程序一般比较冗长、复杂、容易出错。但是汇编语言的有点显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度更快。


  3. 高级语言

    高级语言和汇编语言相比,它不但把许多相关的机器执行合成为单挑执行,并且去掉了与具体操作有关但与完成工无关的细节。

    高级语言按转换方式可以分为:编译型、解释型

    a.编译型:#先翻译

    i.把源代码编译成机器语言的可执行程序

    ii.执行 可执行程序文件

    优点:执行前编译,执行过程中不需要源代码,不依赖语言环境,执行的是机器码文件

    执行速度快,已经被翻译成了计算机可以识别的机器语言

    缺点:每次修改源文件,需要重新编译,生成机器码文件

    跨平台性不好,不同的操作系统,调用底层的机器指令不同,需要为不同平台生成不同的机器码文件

    b.解释型: #同传翻译

    i.用户调用解释器,执行源代码文件

    ii.用户调用解释器,执行源代码文件

    优点:天生跨平台,因为解释器已经做好了对不同平台的交互处理,用户写的代码不再需要考虑平台的差异性

    随时修改随时运行查看结果,不需要重新编译

    缺点:运行效率低,所有的代码均需要解释器边解释边执行,速度比编译型慢很多

    代码是明文

三.编程语言总结

机器语言

    优点是最底层,速度最快。缺点是最复杂,开发效率最低

汇编语言

    优点是比较底层,速度最快。缺点是复杂,开发效率最低

高级语言

    编译型语言执行速度最快,不依赖语言环境运行,跨平台差

解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行

补充.Python介绍

python是一种编程语言。

运行过程:源代码文件--》解释器/虚拟机--》动态编译--》机器语言可执行命令--》CPU

python解释器种类:
CPython C语言
IPython 基于CPython上的交互式解释器
PyPy 动态编译(混合型)
Jython Java平台
IronPython .NET平台

python学习之路 一 :编程语言介绍的更多相关文章

  1. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  2. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  3. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  4. Python学习之路——pycharm的第一个项目

    Python学习之路——pycharm的第一个项目 简介: 上文中已经介绍如何安装Pycharm已经环境变量的配置.现在软件已经安装成功,现在就开始动手做第一个Python项目.第一个“Hello W ...

  5. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  6. python学习之路网络编程篇(第四篇)

    python学习之路网络编程篇(第四篇) 内容待补充

  7. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  8. python 学习之路开始了

    python 学习之路开始了.....记录点点滴滴....

  9. python学习之路,2018.8.9

    python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!

  10. python学习之路------你想要的都在这里了

    python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...

随机推荐

  1. nginx基本配置与参数说明-【转】

    #运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; ...

  2. WOW研究资料收集

    1,模拟服务器:trinity core, sunwell core等 参考:逍遥魔兽 2,大芒果:通用网游框架,带了WOW的模拟模块 参考资料: 大芒果论坛http://www.mangoscn.c ...

  3. Squid 代理服务器日志管理

    简介: Squid 服务器日志增长是很快的,如果不做处理的话,可以会由于系统限制单文件大小,而导致 Squid 服务停止,太大的日志文件也不适合分析. 一.日志配置 shell > grep ' ...

  4. Python 多人聊天工具 ( 多线程 )

    程序实现: 1.单或多客户端使用 telnet 登陆服务端 ( 可远程 ) 进行会话 2.服务端实现登陆.注册.退出功能 3.客户端发送的消息会被广播到已经登陆的其他用户界面 4.连接到服务端后,可以 ...

  5. Java实现主线程等待子线程

    本文介绍两种主线程等待子线程的实现方式,以5个子线程来说明: 1.使用Thread的join()方法,join()方法会阻塞主线程继续向下执行. 2.使用Java.util.concurrent中的C ...

  6. Java中的class为什么要设置访问控制?和C++比较的感悟

    Java中的class为什么要设置访问控制?和C++比较的感悟 在Java中package解决了class的名字空间问题,class的成员都有各自的访问控制符,而class还有两种访问控制符,分别是p ...

  7. 关于解决 请求被中止:无法建立SSL / TLS安全通道

    我使用HttpWebRequest访问其他网站时,出现"请求被中止:无法建立 SSL / TLS安全通道"错误,于是goog和百度了一番,提供的答案基本 是:ServicePoin ...

  8. 使用ControllerClassNameHandlerMapping实现SpringMVC的CoC配置

    使用CoC,惯例优先原则(convention over configuration)的方式来配置SpringMVC可以帮我们声明Controller的时候省下很多功夫. 只要我们的Controlle ...

  9. Opencv HOG特征检测

    HOGDescriptor hogDescriptor = HOGDescriptor(); hogDescriptor.setSVMDetector(hogDescriptor.getDefault ...

  10. Docker学习记录常用命令

    1. docker ps  -a 查看运行中的容器 2. docker images 查看docker镜像 3. docker rm id(容器id)  删除容器(容器id可以通过docker ps查 ...