精华内容
下载资源
问答
  • 编程语言分类

    万次阅读 2017-02-22 12:39:55
    有一种说法:一个好的计算机专业毕业生,应该掌握 一门面向过程的语言 一门面向对象语言 一门脚本语言 ...如果学有余力,最好 ...目前编程语言主要分为三大类: 1.机器语言 2.汇编语言 ...

    有一种说法:一个好的计算机专业毕业生,应该掌握

    • 一门面向过程的语言

    • 一门面向对象语言

    • 一门脚本语言

    如果学有余力,最好

    • 对一门函数式语言有所了解

    打个比方:毕业时熟悉C、Java和Python,对Scala有一定了解,就算是符合这个条件了。


     

    目前编程语言主要分为三大类:


           1.机器语言


           2.汇编语言


           3.高级语言


    1.1

    机器语言为纯粹的机器代码,由010101……的二进制代码组成,可以由计算机直接执行,运行效率最高,通用性不强,对于不同的硬件需要不同的程序。


    2.1

    汇编语言可分为8086汇编,win32汇编,.NET汇编,运行效率低于机器语言,用简单的助记符代替二进制代码,通用性不强,对于不同的硬件需要不同的程序。但由于其特殊性质,在某些行业可广泛应用。


    3.1

    高级语言分为Java、Basic、Pascal、Object Pascal、C、C++、C#、ASP、ASP.NET、Perl、PHP、SQL、FORTRAN 等(纯粹的编程语言)Visual Basic、Visual Basic.NET、Delphi、Visual C++、C++ Builder、C# Builder、Visual Foxpro 等(经过发展过后的编程语言)用人类可识别的自然语言(主要英语)进行编程,运行效率更低,但编程难度和程序可读性大幅提高。可移植性好,实用性较好,适合大规模开发,是现在大多数程序员选择的语言。Java语言和.NET平台的出现一定程度上解决了由于平台不同所导致的代码移植困难情况。


    3.2

    高级语言相关介绍

    Basic

    微软公司上个世纪八十年代推出的计算机语言,当时造成了计算机软件开发世界的强烈震动,它的出现将很多程序员由枯燥的编码中解放出来,而有更多的精力来进行程序结构的开发。但是Basic同C、Pascal语言一样,是结构化语言,在大型开发中会逐渐力不从心,程序员需要关注的内容实在太多了。其实现在学习Basic已经没有什么意义了,因为它的改进版本Visual Basic和Visual Basic.NET无论是在功能上还是在实用性上都大大地超过了他们的祖先。

     

    Pascal

    结构化语言,语法结构严谨,易于教学。相对于C语言,缺乏一定的灵活性。但是正是其严谨的语法,很多Pascal程序员倾心于其“诗篇一样的结构”,曾经一直是大专院校计算机专业必学的语言。它的改进版本Object Pascal和Delphi都超过了它。

     

    Object Pascal

    改进版的Pascal,它是面向对象的Pascal,是Delphi语言的核心。

     

    Python

    如今Python相当流行,Python语言语法优雅,特点之一是强制要求使用规范的代码缩进,运行速度还不错,相对易学。很多国外的大学,计算机专业的入门语言便Python。国内也有少数大学,也在尝试用Python作为第一门编程语言。Python语言可用于数值计算、网站后端、脚本,还有今天特别火的大数据、机器学等。

    C

    上世纪七十年代由贝尔实验室开发,当时是为了解决一个实际问题,将B语言改进后得到的,后来贝尔实验室又用它重写了UNIX操作系统。目前它是所有工科学生必须学习的语言,特点:贴近硬件,执行效率高,使用灵活,功能强大。但它毕竟还是结构化编程语言,在进行大型开发上还是有点力不从心,往往编程人员需要绞尽脑汁想出各种“精巧”的算法来实现某个目的,不过在学习操作系统和进行单片机开发上,它的作用是举足轻重的。

     

    C++

    C语言的改进版本,在保留了C语言所有特性的同时添加进了面向对象思想。这个特性赋予它在很多大型开发上得天独厚的优势,在很多领域中有很强生命力,直至今日,此语言还在不断发展中,新技术层出不穷。

     

    C#

    读作「C sharp」,就是「C 升号」的意思(变相表达C"++"),C#是微软公司出品的一款编程语言(其实就是模仿Java搞出来的一款竞品),很多桌面程序都是用C#写的(即WPF),它是一种现代的,面向对象的语言,它结合了C/C++和Visual C++的强大功能以及Visual Basic的易用性。具有简单、面向对象、类型安全、可进行Dll版本控制、兼容性好、灵活等诸多特点,使得它成为了一个很有潜力的新生代语言。再加上互联网的高速发展和微软的强大技术支持,应该是比较有前途的。

     

    Java

    Java是一种简单的,面象对象的,分布式的,解释的,可移植的,多线程的语言(Java本身是静态语言,后来加入很多动态特性)。Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但网络的出现改变了OAK的命运。在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统编程语言显得无能为力,SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,Java语言具有:与平台无关性、安全性、面向对象,分布式等诸多特点,成为了当今计算机界炙手可热的语言,具有大量拥护者。

     

    ASP/ASP.NET/PHP/Perl

    这些都是网页开发使用的语言。

     

    SQL

    结构化查询语言,主要用于数据库开发。但很多现代的语言(Delphi等)都支持内嵌SQL。

     

    FORTRAN

    最初应美国国防部需要而开发的语言。擅长于科学计算,主要用于高校之中。

     

    Visual Baisc、Visual Baisc.NET

    都是由basic改进而来,其中Visualbasic是解释型语言,编译速度快,可以实时调试,它不是完全的面向对象,多线程开发比较困难。VisualBaisc.NET是基于微软.net平台的新语言(注意它和VisualBasic是完全不同的语言),面向对象,可以进行嵌入式开发,与asp.NET结合紧密,并且在性能上大大提高,很有发展前途。

     

    Visual C++/C++ Builder

    都是C++语言的开发环境,可以使用户更方便的开发Windows程序。Visual C++是微软公司的产品,而C++ Builder是Borland 公司的产品。

     

    C# builder

    Borland公司的C#开发环境。

     

    Delphi

    Borland公司的旗舰产品。Object Pascal的集成开发环境,具有强大的数据库功能、高效的编译速度和方便快捷的开发,使得很多公司选用Delphi作为首选开发语言。

     

    展开全文
  • 编程语言 - 介绍与分类

    千次阅读 2019-10-22 11:57:30
    目的就是想更加清楚地知道编程语言分类,弄清楚一直以来的困惑. //建议阅读<<计算机组成原理>>相关书籍 2.介绍 编程语言层出不穷, 想弄清楚这到底是怎样的一会儿事儿,就必须要把他其发展...

    1.应用场景

    目的就是想更加清楚地知道编程语言的分类,弄清楚一直以来的困惑.

    建议阅读<<计算机组成原理>><<操作系统>>等相关书籍

    2.学习/实践

    1. 文档

    编程语言 - 强弱/动静态类型

    C语言 - 介绍_william_n的博客-CSDN博客

    C语言这么厉害,它自身又是用什么语言写的?_码农翻身-CSDN博客

    编程语言的发展史 - KAMNA - 博客园

    机器语言与汇编语言_Sucker For Pain-CSDN博客_机器语言和汇编语言

    汇编语言和机器语言是一一对应的吗?

    计算机和编程语言的发展历史

    计算机组成原理-王道考研系列

    汇编语言从0开始 到C语言 - 网易云课堂

    2. 整理输出

    编程语言层出不穷, 如果想弄清楚这到底是怎样的一回儿事儿, 就必须要将其发展的历史理清楚.

    2.1 简述

    计算机语言的发展经历了面向机器的机器语言和汇编语言, 面向问题的高级语言.

    其中高级语言的发展真正促进了软件的发展, 它经历了从科学计算和工程计算的FORTRAN, 结构化程序设计PARSCAL 到 面向对象的C++和适应网络环境的Java.

    2.2 软件分类

    软件按照其功能分类可以分为 系统软件 应用软件

    系统软件

    一组保证计算机高效, 正确运行的基础软件, 通常作为系统资源提供给用户使用.

    主要有操作系统(OS), 数据库管理系统(DBMS), 语言处理程序, 分布式软件系统, 网络软件系统,标准库程序, 服务型程序等.

    应用软件

    指用户为解决某个应用领域中的各类问题而编制的程序。

    如各类科学计算类程序, 工程设计类程序, 数据统计与处理程序等. -- 绝大数程序员都是做这类的的软件

    2.3 编程语言发展的三个阶段

    第一代语言: 机器语言

    又称为二进制语言, 需要编程人员[好像那时候还不叫程序员]记忆每一条指令的二进制编码, 机器语言是计算机唯一可以直接识别和执行的语言. --- 现在也是,未来还是

    第二代语言: 汇编语言

    汇编语言用英文单词或缩写代替二进制的指令代码, 更容易人们记忆和理解, 汇编语言的程序必须经历过一个称为汇编程序的系统软件的翻译, 将其转换为计算机的机器语言后, 才能在计算机的硬件系统上执行.

    第三代语言: 高级语言

    高级语言(如, C, C++, Java等) 更多地是为了方便程序设计人员写存储解决问题的处理方案和解题过程的程序. 通常高级语言需要经过编译成汇编语言程序, 然后经过汇编操作得到机器语言程序, 或者直接由高级语言程序翻译成机器语言程序.

    Note

    C语言之前还有A,B语言,更多细节请自行搜索

    2.4 分类

    机器语言   汇编语言   高级语言 , 介绍见上面

    2.5 编译器

    机器语言是计算机唯一可以直接识别和执行的语言, 所以如汇编语言和高级语言都是需要一个直接或者间接转换为机器语言的过程, 这个过程由一个工具负责, 就是编译器[针对编译型语言而言], 解释性语言则另外一种执行方式. 见下方:

    3.2.1 翻译程序, 汇编程序, 编译程序, 解释程序的区别和联系?

    翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码)的软件.

    翻译程序有两种, 一种是编译程序, 它将高级语言源程序一次全部翻译为目标程序, 每次执行程序时, 只要执行目标程序, 因此, 只要源程序不变, 就无须重新编译, 请注意同一种高级语言在不同体系结构下, 编成的目标程序是不一样的, 目标程序与体系结构相关, 但仍不是计算机硬件能够执行的程序. 

    另外一种是解释程序, 它将源程序的一条语句翻译成对应的机器目标代码, 并立即执行, 然后翻译下一条源程序语句并执行, 直至所有源程序语句全部被翻译完并执行完. 所以解释程序的执行过程是翻译一句执行一句, 并且不会生成目标程序.

    由于解释程序要边翻译边执行, 故而执行速度相比于编译程序较慢. 

    为增加对该过程的理解, 附C语言编译连接过程:

    源程序(.c)-----c编译器--->汇编源程序----汇编程序---->目标程序----链接程序--->可执行程序[即传说中的二进制可执行文件]

    汇编程序也是一种语言翻译程序, 它把汇编语言源程序翻译为机器语言程序. 汇编语言是一种面向机器的低级语言, 是机器语言的符号表示, 与机器语言一一对应.

    编译程序与汇编程序的区别: 如果源语言是诸如C, C++, Java等"高级语言", 而目标语言是诸如汇编语言或机器语言之类的"低级语言", 这样的一个翻译过程称为编译程序.  如果源语言是汇编语言, 而目标语言是机器语言, 这样的一个翻译程序称为汇编程序.

    2.6 编译器演进

    我们知道在最开始的时候, 是没有所谓编译器的, 先从机器语言说起,看看怎么办。

    首先, 我们知道, 机器语言可以直接被CPU执行,不需要编译器。可是机器语言不便于记忆, 所以出现了汇编语言[机器语言的助记符]

    汇编语言也需要编译成机器语言才能执行,没办法只能用机器语言来写这第一个编译器了以后就不用了

    汇编语言的问题解决了,就往前迈进了一大步,这时候就可以用汇编语言去写C语言的编译器我们说这是C编译器的老祖宗。

    有了这个老祖宗,就可以编译任意的C语言程序了,那是不是可以用C语言本身写一个编译器?只要用老祖宗编译一下就可以了。

    OK, 这么一层层上来,终于得到了一个用C语言写的编译器, 真是够麻烦的。 

    到这个时候,之前那个汇编写的C语言编译器就可以抛弃了。 // 暂未想明白?怕是要到<<编译原理>>中解惑, 关键点在于: 编译器也要经过编译成二进制,才能发挥编译作用。已经想明白了, C编译器的老祖宗的可执行代码是二进制, C语言写的编译器的可执行代码也是二进制,其中关键点就是程序分为两部分:src 源代码,与dest 目标程序, 前者是高级语言编写的源代码,后者经过上一个编译器编译后的新的编译程序, 然后重复这个过程,理论是可无止境地创造编程语言,在任何一层,当然除了机器语言~

    当然,如果在C语言之前,已经出现了别的高级语言,例如 Pascal,那就可以用Pascal来写一个C语言的编译器。

    第一个Pascal的编译器据说是使用Fortran写的。而做为第一个高级语言的Fortran [刚刚搜索了下,似乎还有一些人在使用],它的编译器应该是汇编语言写的。

    可能有人问:我用汇编写一段Hello World都很麻烦,居然有人可以用它写复杂的编译器?这可能吗?

    当然可能,在开发第一代Unix的时候,连C语言都没有, Ken Thompson 和 Dennis Ritchie 可是用汇编一行行把Unix敲出来的。   

    WPS第一版是求伯君用汇编写出来的, Turbo Pascal 的编译器也是Anders 用汇编写出来的,大神们的能力不是普通人能想象得到的。 

    对于编译器来说,还可以采用“滚雪球”的方式来开发:

    还是以C语言为例,第一个版本可以先选择C语言的一个子集,例如只支持基本的数据类型,流程控制语句,函数调用......[应该说是新的高级语言最基础的模块,能够支持未来该语言的所有高级特性,如如果不能支持,可能就要在最初版的子集使用汇编再追加] 我们把这个子集称为C0。

    然后用汇编语言写个编译器,只搞定这个语言的子集C0,这样写起来就容易不少。

    C0这个语言可以工作了,然后我们扩展这个子集,例如添加struct,指针......  ,把新的语言称为C1。 

    那C1这个语言的编译器由谁来写?自然是C0。

    等到C1可以工作了,再次扩展语言特性,用C1写编译器,得到C2。 

    然后是C3, C4......  最后得到完整的C语言。

    这个过程被称为bootstraping , 中文叫做自举。

    插入

    常见语言的易用性, 性能, 以及流行度见下表,

    圆圈大小代表流行度

    问题:

    Go语言能否替代php做互联网网站开发?

    在整体易用性、流行度方面Go和PHP还完全不是一个层次。

    PHP如日中天,但有缓慢衰减之势。而Go还只是新兴的小众语言

    补充

    下面对比各种语言之间的区别,可以认真阅读

     

    2.7 编程语言发展趋势

    不好说,但是未来应该会出现或者说已经出现了更加高级的语言, 更高层次的封装抽象, 以模块为单位, 更加简单. 但是底层的东西还是始终不能丢弃. 因为这是根基, 根基的重要性不言而喻. // 个人认为

    后续补充

    ...

    3.问题/补充

    1.何为脚本语言?

    常听到PHP, JavaScript, shell 等脚本语言?

    所谓“脚本语言”(script language),指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序(比如浏览器)的“脚本”。

    例子: -- 阮一峰

    另见维基百科:

    https://zh.wikipedia.org/wiki/脚本语言

    截图:

    ...

     4.参考

    C语言 - 介绍_william_n的博客-CSDN博客

    C语言这么厉害,它自身又是用什么语言写的?_码农翻身-CSDN博客

    编程语言的发展史 - KAMNA - 博客园

    机器语言与汇编语言_Sucker For Pain-CSDN博客_机器语言和汇编语言

    汇编语言和机器语言是一一对应的吗?

    计算机和编程语言的发展历史

    计算机组成原理-王道考研系列

    汇编语言从0开始 到C语言 - 网易云课堂

    后续补充

    ...

    展开全文
  • 编程语言介绍与分类

    万次阅读 多人点赞 2019-04-16 11:31:52
    什么是编程?为什么要编程编程 是个动词,编程==写代码,写代码为了什么? 为了让计算机干你想要干的事情,比如,马化腾想跟别人聊天,于是写了个聊天软件,这个软件就是一堆代码的集合,这些代码是什么?这些...

    什么是编程?为什么要编程?

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

    那计算能理解的语言是什么呢? 之前,我们已经了解到,它只能理解2进制,0101010...,你总不能人肉输一堆二进制给计算机(虽然最原始的计算机就是这么干的)让它工作吧,这样开发速度太慢了。所以最好的办法就是人输入简单的指令,计算机能把指令转成二进制进行执行,举例如下:

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

    open "老男孩.mp3"
    play

    计算机的CPU接收到这样的指令后,会把它转成一堆 只有cpu可以理解的指令,然后再将指令变成各种对应的如下类似二进制

    [  op  |  rs |  rt | address/immediate]
       35     3     8           68           decimal
     100011 00011 01000 00000 00001 000100   binary

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

    上面cpu那段指令太难理解了,如果让你天天写这样的代码,大家非得自杀不可。还好,伟大的计算机先驱们,开发了各种编程语言,让我们只需要通过写一些简单的规则,就能操作计算机工作啦。

     

    有哪些编程语言?

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

    机器语言

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

    用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作。编写程序花费的时间往往是实际运行时间的几十倍或几百倍。而且,编出的程序全是些0和1的指令代码,直观性差,还容易出错。除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。

    机器语言是微处理器理解和使用的,用于控制它的操作二进制代码。

    尽管机器语言好像是很复杂的,然而它是有规律的。

    存在着多至100000种机器语言的指令。这意味着不能把这些种类全部列出来。

    以下是一些示例:

    指令部份的示例

    0000 代表 加载(LOAD)

    0001 代表 存储(STORE)

    ...

    暂存器部份的示例

    0000 代表暂存器 A

    0001 代表暂存器 B

    ...

    存储器部份的示例

    000000000000 代表地址为 0 的存储器

    000000000001 代表地址为 1 的存储器

    000000010000 代表地址为 16 的存储器

    100000000000 代表地址为 2^11 的存储器

    集成示例

    0000,0000,000000010000 代表 LOAD A, 16

    0000,0001,000000000001 代表 LOAD B, 1

    0001,0001,000000010000 代表 STORE B, 16

    0001,0001,000000000001 代表 STORE B, 1[1]

     

    汇编语言

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

    汇编的hello world,打印一句hello world, 需要写十多行,也是醉了。

    ; hello.asm 
    section .data            ; 数据段声明
            msg db "Hello, world!", 0xA     ; 要输出的字符串
            len equ $ - msg                 ; 字串长度
    section .text            ; 代码段声明
    global _start            ; 指定入口函数
    _start:                  ; 在屏幕上显示一个字符串
            mov edx, len     ; 参数三:字符串长度
            mov ecx, msg     ; 参数二:要显示的字符串
            mov ebx, 1       ; 参数一:文件描述符(stdout) 
            mov eax, 4       ; 系统调用号(sys_write) 
            int 0x80         ; 调用内核功能
                             ; 退出程序
            mov ebx, 0       ; 参数一:退出代码
            mov eax, 1       ; 系统调用号(sys_exit) 
            int 0x80         ; 调用内核功能

    高级语言

    高级语言是大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

    高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,像最简单的编程语言PASCAL语言也属于高级语言。

    高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:

    编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj,也就是OBJ文件)才能执行,只有目标文件而没有源代码,修改很不方便。

     

    编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

    解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。

     

    总结

    机器语言

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

    汇编语言

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

    高级语言

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

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

     

    主流编程语言介绍(10分钟)

    世界上的编程语言有600多种,但真正大家主流在使用的最多二三十种,不同的语言有自己的特点和擅长领域,随着计算机的不断发展,新语言在不断诞生,也同时有很多老旧的语言慢慢无人用了。有个权威的语言排名网站,可以看到主流的编程语言是哪些

    *2019年2月数据(https://www.tiobe.com/tiobe-index/ )

     

     

    下面介绍下几个主流的编程语言:

    C语言:

    C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。

    C++:

    C++是C语言的继承的扩展,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

    C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

    JAVA:

    Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

    PHP:

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域

    Ruby:

    Ruby 是开源的,在Web 上免费提供,但需要一个许可证。[4]

    Ruby 是一种通用的、解释的编程语言。

    Ruby 是一种真正的面向对象编程语言。

    Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。

    Ruby 可以用来编写通用网关接口(CGI)脚本。

    Ruby 可以被嵌入到超文本标记语言(HTML)。

    Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby

    GO:

    Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

    Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

    由其擅长并发编程

    Python:

    Python是一门优秀的综合语言, Python的宗旨是简明、优雅

    、强大,在人工智能、云计算、金融分析、大数据开发、WEB开发、自动化运维、测试等方向应用广泛,已是全球第4大最流行的语言。

     

    展开全文
  • 计算机编程语言分类

    千次阅读 2019-02-18 17:31:58
    按照编程语言的擅长范围的分类 前端 后端 数据库 一些问题 为什么软件项目会分为前端后端? javajavascrip有什么关系区别? C#.Net有什么关系区别? 前言 所有的工程师在接触编程有一段时间了...

    Table of Contents

    前言

    机器语言

    汇编语言

    高级语言

    高级语言的分类

    面向过程的语言

    面向逻辑的语言

    面向对象的编程语言

    按照编程语言的擅长范围的分类

    前端

    后端

    数据库

    一些问题

    为什么软件项目会分为前端和后端?

    java和javascrip有什么关系和区别?

    C#和.Net有什么关系和区别?


    前言

    所有的工程师在接触编程有一段时间了之后,必然都会接触和学习不少的语言,博主个人目前接触的语言就有:C,java,python,javascript,c#。大学时的课本知识里对计算机的各个部分都是有所涉猎的,但是由于自身水平不够,在大学学习时也尚未有一个深刻的认识。编程语言在计算机的整个体系里面的地位是十分重要的,但是读完大学下来发现自己并没有对所有编程语言有一个总体的印象,只知道后端我们常常用java,c++,python,前端我们常常用javascript。事实上,不同的语言类型有他们不同的目标,了解各种语言的分类是一件非常有意义且助于我们理解的事情。

    最为广泛的编程语言分类如下

    机器语言

    机器语言是指直接在硬件当中解释的语言。是一些非常低级的机器指令,例如add,sub,div,sqrt。

    下面是一个机器语言的例子:

    89 F8 A9 01 00 00 00 75 06 6B C0 03 FF C0 C3 C1 E0 02 83 E8 03 C3

    汇编语言

    汇编语言是将机器代码编为更易读的东西。 它将人类可读的标签(或名称)分配给存储位置,跳转目标和子程序起始地址,但实际上并没有超出机器语言的范围。

    下面是使用GAS汇编语言,在Intel 64架构上面实现的功能:

            .global f
    f:
            andcc   %o0, 1, %g0
            bne     .L1
            sll     %o0, 2, %g2
            sll     %o0, 1, %g2
            add     %g2, %o0, %g2
            b       .L2
            add     %g2, 1, %o0
    .L1:
            add     %g2, -3, %o0
    .L2:
            retl
            nop

    高级语言

    高级语言脱离了特定机器的所有约束。并向编程人员提供了如下的功能:

    • 为几乎所有的东西提供命名,如:变量,类型,子例程,常量,模块
    • 复杂表达式(例如2 *(y ^ 5)> = 88 && sqrt(4.8)/ 2%3 == 9)
    • 控制结构(条件,开关,循环)
    • 复合类型(数组,结构)
    • 类型声明
    • 类型检查
    • 管理全局,本地和堆存储的简单,通常是隐式的方法
    • 子程序有自己的私有范围
    • 抽象数据类型,模块,包,类
    • 异常

    我们所接触的所有编程语言几乎全是高级语言,包括C,C++,java,C#,Scala,Kotlin,JavaScript,Erlang,Perl,Python,Ruby,Go,Swift,

    高级语言有很多优点,例如:程序员更容易记住。逻辑和结构更容易理解。与其他语言相比,调试更容易。编写新程序所需的时间更少。可移植。

    但是高级语言并非没有缺点,与其他机器级语言或汇编级语言相比,高级编程语言占用更多空间。且执行更加缓慢。

    我们不难看出,从低级语言到高级语言,编程语言逐渐的从机器易于理解而人难以理解,变为人易于理解而机器难以理解,因此高级语言需要解释,编译,变为机器能够认识和理解的语言才能执行。我们可以推断,这就是编译器,解释器这些东西诞生的根本原因。

    高级语言的分类

    从设计的角度来讲,高级语言可以分成如下三类

    面向过程的语言

    面向过程的编程语言, 也称为命令式编程语言。 在这种语言中,程序被编写为一系列procedure 。 每个procedure都包含一系列用于执行特定任务的指令。 在程序执行期间,其他过程可以调用每个过程。 在这种类型的编程范例中,以procedure的形式编写的代码可以通过指定对应的过程名称而在程序中使用任意次数,这类似于面向对象编程中调用一个方法。 面向过程的语言包含FORTRAN,ALGOL,C,BASIC和ADA。

    面向逻辑的语言

    面向逻辑的语言使用逻辑编程范式作为解决各种计算问题的设计方法。 在这种编程语言中,通过谓词逻辑来定义规则和事物之间的关系来描述问题的本质。 Prolog是面向逻辑的编程语言的最佳例子。Prolog语言的一个实例如下:

    likes(mary,food).
    likes(mary,wine).
    likes(john,wine).
    likes(john,mary).
    
    The following queries yield the specified answers.
    
     | ?- likes(mary,food). 
     yes.
     | ?- likes(john,wine). 
     yes.
     | ?- likes(john,food). 
     no.
    
    How do you add the following facts?
    
    1. John likes anything that Mary likes 
    2. John likes anyone who likes wine 
    3. John likes anyone who likes themselves 

    面向对象的编程语言

    面向对象的编程语言使用面向对象的编程范例作为解决给定问题的设计方法。

    在这种编程语言中,问题被拆分成许多对象,这些对象反应了程序员对问题的抽象,对象之间通过可以相互传递消息。 C ++和C#,java都是面向对象编程语言。面向对象的语言可以说是全世界应用最为广泛的编程语言,面向对象的思想也是最贴近人类认识事物方式的编程思想。

    对面向对象的思想的更多的内容可以参考这篇博客:难的问题到底难在哪儿

    按照编程语言的擅长范围的分类

    在上文中从设计角度出发对编程语言分类是我们见过最为多的一种划分方式。除此之外其实还有一种划分方式,我们每天的开发行为都在遵循这种划分,但是我们却很少意识到我们为什么要这样做。

    现在让我们来假设一个问题,你收到了一个开发需求,需要你开发一个公司的门户网站,用于展示公司的商品。这个时候,从一个较大的角度去考虑,我们会想到这个项目是需要一个前段界面的,然后需要一个后端服务器的,然后需要一个数据库的。在这里部署运维测试我们先抛开不谈。那么,对于前端界面,我们会很自然的想到,这是一个web应用,那么我应该需要用到一些js以及html相关的技术。对于后端服务器,我们可以选择java和spring这套最为成熟的web服务器架构,对于数据库,我们可以选择任意一款开源的关系型数据库。

    这里,我的问题是:为什么前段界面就是用js以及html语言?后端就是java语言?为什么不考虑用java做UI,js做后台与数据库进行交互,是因为他们做不到吗?

    答案显然不是的,这里的答案事实上就是我们标题的含义,每一门编程语言也是有他的的擅长范围的,有的编程语言就是做后端服务器的,有的编程语言就是开发界面的,有的编程语言就是设计来操作数据库,执行一些job作业的。编程语言在随着时代的发展,也许是无意识的也形成了这样一种划分,这里说无意识是因为博主认为这些语言在诞生之初,他们的设计者其实并未想到这门语言只是做某一方面的事情。例如java在相当长的时间内事实上都是可以做UI的。直到最近一次的jdk更新才完全从jdk当中舍弃了UI相关的库。

    明白了这些,所有网上关于哪门语言最好更好的调侃和争论你就可以不再参与了,因为我们应该清楚,各门语言是有他各自擅长的地方的。

    回到正题,那么按照擅长范围的划分的话,编程语言则可以按如下方式分类:

    前端

    • javascript(注意jquery等这些都属于js的库或者说框架)
    • html
    • css
    • C# (读作C sharp)
    • Delphi

    后端

    •  Java
    • C
    • C++
    • Php
    • C#
    • Go
    • GoLang
    • Erlang(rabbit mq用到了这门语言)

    数据库

    • Sql

    注意上面只是列出了部分语言。同时注意C#即出现在了前端也出现在了后端,是因为它可以用来做后端逻辑,也提供了很多做桌面应用程序的库。

    一些问题

    为什么软件项目会分为前端和后端?

    前端和后台的工作是完全不同的,侧重点是不一样的,前端的核心关注点是设计页面,后台是结合数据库实现一些代码的逻辑如验证用户的操作等,后台更加偏重逻辑操作。这是一个很有意思的问题,因为我们如果了解计算机历史的话,应该知道最早的计算机软件其实是没有前端的。前端的革命性创新个人认为来源于微软的windows系统。

    java和javascrip有什么关系和区别?

    这是初学者常有的疑问,他们最显著的关系可能只是他们的名字。除此之外,它们都是面向对象的的语言,虽然实现的方式略有不同。另外据说JavaScript 在设计时部分参照了 Java 的命名规则,这也是他们很多地方看起来相似的原因,当然js同时也参照了别的一些编程语言,而java在设计之初也同样参照了很多C++的命名规则。

    不同之处的话有JavaScript 是动态类型语言,而 Java 是静态类型语言。JavaScript 是弱类型的,Java 属于强类型。JavaScript 的面向对象是基于原型的(prototype-based)实现的,Java 是基于类(class-based)的,等等。

    当然,从我们上一部分的擅长范围来说的话也可以把他们按前段语言和后端语言来划分。

    C#和.Net有什么关系和区别?

    C#是一门面向对象的程序设计语言,是运行在.net 框架上的,用于创建应用程序的高级语言。

    .net是一个微软推出的平台,或者说,它包含一套东西。

     

     

    展开全文
  • 【总结】编程语言分类

    千次阅读 2020-03-16 12:00:30
    一、计算机编程语言分类 1、低级语言 机器语言(二进制代码)、汇编语言(面向机器的程序设计语言)符号语言。汇编语言源程序必须经过汇编,生成目 标文件,然后执行。 机器语言优缺点如下: ...
  • 你必须知道的编程语言分类

    千次阅读 2011-06-10 11:14:00
    我们习惯把编程语言分类为机器语言(汇编语言)高级语言(Fortran/Lisp/Cobol/Basic/C/Pascal /C++/Java/Perl/Python),选择使用高级语言编程而不是机器语言相信大家都能说出一两个理由(比汇编语言更容易更...
  • 27种主流编程语言分类及优劣

    千次阅读 2019-06-10 14:02:45
    在 Stackoverflow 上,主流编程语言如 Java、Javascript、C#、php C++ 的问题访问量过去几年基本没太大的变动,只有 Python 一路呈上升趋势。 初一辅导 https://baike.hfjy.com/middle/g7/ 海风教育:用数据说话...
  • 常用编程语言简介大全

    千次阅读 2020-05-19 15:42:55
    一、计算机编程语言分类;二、高级语言分类;三、常用语言的用途
  • 编程语言

    千次阅读 2008-01-27 12:52:00
    如果语种分,可以分为英文符号语言和汉语符号语言两类。(典型的如:易语言、易语言.飞扬)电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的集合,而程序...
  • julia 编程语言A bird’s eye view of Julia as a Programming language, it’s capabilities and shortcomings 鸟瞰Julia作为一种编程语言,它的功能和缺点 “Julia”, which got the limelight in the recent ...
  • 编程语言有很多种,以下就是对一些常用的编程语言的简单介绍特点以及他们的一些应用领域。希望对你能有所帮助。 在介绍各种编程语言前,我们先来看一下下面这个图,从图中可以明显看出来,当前应用最广泛的语言...
  • Python其它27种编程语言

    千次阅读 2017-09-17 13:19:59
    过程型编程语言: C, Rust, Cython 面向对象数据建模语言: Java, C#, Eiffel C 的面向对象衍生语言: C++, D 面向数组的数据处理: MATLAB/Octave, Julia 统计数数据分析: R 计算型管道建模: Haskell, Scala, Clojure, ...
  • 各种编程语言介绍

    千次阅读 2007-04-27 09:47:00
    各种编程语言介绍编程语言介绍From Wikibooks, the free textbook project. 各种语言的介绍 Table of contents [showhide] 1 各种语言的介绍(第二版)1.1 各种语言的选择1.2 各种语言的选择2 我为什么选择了python3...
  • 高级编程语言的发展历程

    千次阅读 2012-02-17 23:19:15
    高级编程语言的发展历程 分类: 程序设计 计算机语言 2011-08-08 22:49 314人阅读 评论(0) 收藏 举报   高级编程语言的发展历程(一) 2010-07-20 高级编程语言的创始纪上写道:“初,世间无...
  • 本菜鸡经过调研,决定了硕士未来两年的学习路线,LeetCode用C++写,...1.计算机编程语言分类 低级语言/高级语言;(高级语言中的)编译型语言/解释性语言;动态语言/静态语言; 2.主要的流行高级语言介绍 Java、C+
  • 总有人会告诉你,你应该学习这个,学习那个,亦或者是刷题根本没用,你应该去做项目,亦或者你看这个视频没什么卵用,你应该自己去实现一遍,亦或者是你应该使用xxx框架,xxx语言,做一个xxx系统,这样你才能学到很...
  • 编程语言介绍及各语言特点

    千次阅读 2019-03-29 19:34:31
    C语言:是一种面向过程的语言 ...比如 Microsoft Word WPS,它们同样都是办公软件,功能也差不多,但 WPS 的安装文件只有 50MB 左右,而 Microsoft Word 的安装文件超过 500MB,有的甚至接近 1GB。原因就是 ...
  • 在论述的过程中会结合华为各语言编程专家华为电信软件内部的骨干开发人员的交流,摒弃语言偏好或者语言教派之争,尽量以客观公正的角度来论述下各个语言的特点不足,对语言选型作为一个客观的参考。
  • 如果没有编程语言,现在的世界就不会存在。
  • 2017年薪酬最高的15门编程语言 GO夺冠

    万次阅读 热门讨论 2017-11-23 15:47:38
    译者注:你从事的工作是基于哪一门编程语言?你的薪酬是多少?在所有编程语言中排名多少呢?作者在本文列举出了2017年薪酬最高的15门编程语言,看看你的语言排名多少吧!以下为译文。科技一直在经济领域社会领域...
  • 前十大编程语言你会几种?

    万次阅读 2016-09-01 14:34:01
    编程是技术革新的核心,当今的编程语言有能力让开发者不再束缚他们的潜力来构建未来的技术。 如果你是一名具有前瞻性的开发者或者想成为一名具有前瞻能力的开发者,那么,是时候开始学习编程了,至少在最好的编程...
  • 常用编程语言介绍及各语言特点

    千次阅读 2019-03-26 16:17:26
    它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到c语言,始于编写程序软件,三维,二维图形动画。具体应用比如**单片机**以及**嵌入式系统**开发。一般开发与硬件相关的...
  • 编程知识如何分类呢?

    千次阅读 2015-04-27 09:40:32
    分类一:知乎萧大的分类  ... 语法:我怎样用某种编程语言表达这些算法,让计算机能够理解。 系统基础:为什么 while(1) 时线程永远无法结束?为什么 int *foo() { int x = 0; return &x; } 是不可行的?   编
  • 27 种语言过程型编程语言: C, Rust, Cython面向对象数据建模语言: Java, C#, EiffelC 的面向对象衍生语言: C++, D面向数组的数据处理: MATLAB/Octave, Julia统计数数据分析: R计算型管道建模: Haskell, Scala, ...
  • 结合目前国内IT培训行业的热点课程以及科技行业的发展趋势,分析出 2018 年最受欢迎及薪资排名靠前的三种编程语言,希望对大家有所裨益。薪资排名靠前的3种编程语言分别是:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,950
精华内容 17,980
关键字:

网站按编程语言和功能的分类