编程语言分类之我见

Posted 数码营电子实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程语言分类之我见相关的知识,希望对你有一定的参考价值。

我之前也是这样听说地:编程语言分两种,一种是低级语言,一种是高级语言。


低级语言不是说水平低,而是按照从机器到人这样一个由低到高的顺序,距离机器语言近的被称为低级语言,距离人的自然语言近的被称为高级语言。


具体来说,低级语言就是指的各种各样的汇编语言,高级语言指的是汇编语言以外的其他编程语言。


但站在今天来看,情况变了,仅仅把编程语言分成高低两种已经与事实有很大距离了。


首先,汇编语言,看过汇编语言代码的人都知道,汇编代码中也有

"if else while",也就是说,汇编代码同C一样,也是类人语言,从语义的理解角度来看,汇编代码同C、Basic代码并无数量级上的差异,那何以称其为低级语言呢?


其次,按过去标准划分,除了汇编语言意外的其他编程语言都属高级语言,但是看看这段C++的代码,真地接近人的自然语言吗?


#include <iostream>

#include <vector>

#include <string>

 

usingnamespacestd;

 

int main()

{

   vector<string> msg {"Hello","C++", "World", "from", "VS Code", "and the C++extension!"};

 

   for (const string& word : msg)

   {

      cout << word << " ";

   }

   cout << endl;

}


C和Basic之类的代码,人从英语语法的角度,大致是能看懂地,而这段代码,不懂C++自己的语法,你是看不懂地。


基于此,我对编程语言的分类是这样地:大的分两类——机器语言和类人语言。机器语言指的是机器指令组成的代码。类人语言指的是其他所有采用助记符作为词汇的编程语言。


类人语言里,按照直观程度,亦即跟人的自然语言的近似程度,分高中低三种:汇编语言是低级语言,C、Basic这些属于中级语言,C++、Java、Python这些属于高级语言。


这样分类的意义何在呢?便于教学。初学者应该选择中级语言,因为中级语言最接近自然语言,不高也不低。


下面,就以“CodeClocks - Console Applications - C”这一个理想的组合来演示一段C代码:


// 交换两个输入变量的值


#include <stdio.h>
#include <stdlib.h>

int a = 0, b = 0;
int *p = &a, *q = &b;

void swap();

int main()
{
    printf("please input 2 integers:\n");
    scanf("%d, %d", &a, &b);

    printf("\nThe 2 integers you input are:%d, %d\n", a, b);

    printf("\nBefore swapping, The values of variable a and b are:\n");
    printf("a: %d\n", a);
    printf("b: %d\n", b);

    swap(a, b);

    printf("\nAfter swapping, their values are:\n" );
    printf("a: %d\n", a);
    printf("b: %d\n", b);

    return 0;
}

void swap(int m, int n){
    m = m + n;
    n = m - n;
    m = m - n;
    *p = m;
    *q = n;
}


以上是关于编程语言分类之我见的主要内容,如果未能解决你的问题,请参考以下文章

『 编程思维』之我见

编译原理之我见

关于堆栈和block之我见

1写在开头的话——Tinking in Java 绪论之我见

资深码农谈:嵌入式C语言可靠性设计之我见

如何提高程序员的键盘使用效率之我见