JavaScript、CSS、SQL和HTML到底算编程语言吗?
关注极迭代,和小伙伴一起看↗↗↗
编程语言的定义,它是一种人类可以理解的,用于向计算机发出指令或者编写程序的语言。按这个定义,JavaScript、CSS、SQL、HTML都属于编程语言,因为他们都以不同的形式向计算机进行着指令。
为什么会产生“JavaScript、CSS、SQL和HTML到底算编程语言吗?”这样的疑问呢?其实这就不得不提到另一个概念:“图灵完备”。
图灵完备
图灵等价指的是:对于两个计算机A和B,如果A可以模拟B,B可以模拟A,就称他们是图灵等价的。
根据“丘奇-图灵”理论,图灵机是表达能力最强大的计算系统,对现实世界中的任何计算机,都可以用图灵机来模拟它。那么如果某个系统能够模拟图灵机,就可以称该系统是图灵完备的。
一般情况下带有分支,跳转能力,并且支持数组状数据结构的语言基本上就是图灵完备的。
做不到图灵完备的语言主要的可能是:
不支持循环或者递归
- 支持循环,但不支持保存状态
- 输入输出上有限制,同时不支持将完整的输入或者输出缓存到内存中
我们通常的感觉里,要能够写出条件判断、循环的“大而全“的、什么都能做的语言才是编程语言。像Java、C++、PHP、Python之类的自然就是图灵完备的了。而JavaScript显然也是图灵完备的。
图灵不完备的编程语言也是编程语言
图灵不完备也不是没有意义, 有些场景我们需要限制语言本身. 如限制循环和递归, 或者仅仅需要它做某一部分功能。
HTML:可扩展标记语言,我们网页的最主要展现语言
SQL : 数据库查询语言
CSS: 层叠样式表,也可以说是种样式定义语言
❤❤❤❤❤ 请任性点赞,谢谢关注 -- 我是 极迭代 ,我为自己带盐 :)
要解释这个问题,首先要理解“程序”这两个字,可以理解为:过程、次序,也就是指令序列。顾名思义,所谓编程语言,就是能编写程序的语言,所以它的最终输出一定是计算机能执行的指令序列。计算机中,执行指令的地方是CPU,如C语言、Java、JS这些,都有最终能向CPU发送指令的代码。
而HTML(超文本标记语言),只是写了一段放在存储器里的文本文件,它本身里面的内容并不是描述CPU要执行什么动作,而是根据HTML的规范写的一段格式化的文本,供提取它的那个部件(对HTML来说通常就是浏览器)按照规范(我的理解就是一种协议)来进行渲染,通过这种方式生成便于人类阅读的电子文档;其中CSS就负责描述渲染成什么样子,比如颜色、大小、形状等等,从这个角度理解,CSS和HTML称不上是编程语言,类似的文本标记语言还有XML、Latex等等。一段HTML放在计算机里,甚至可以理解为doc文档,都是需要用特殊的程序来解释,才能呈现出最终用户想要看到的形式。
JavaScript和SQL不仅仅是编程语言了,而且是重要的编程语言,从最近TIOBE排行榜也可以看出来,二者都在前十名了。
JavaScript是浏览器端最重要的编程语言,特别是进入web2.0时代以后,页面的逻辑、交互、请求都是靠JavaScript来完成,但是不要以为JavaScript只可以做客户端开发,它也是可以做服务端开发的,特别是由于天生具有异步性的特点,可以开发出性能非常高的服务端程序,有兴趣可以去了解下node.js。
SQL,结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
学习建议:
关于JavaScript,我建议你看着三本书,看明白之后,自然知道下一步学什么了。
《JavaScript高级程序设计》这本书至少看两遍,入门必备。
道格拉斯这本书比较极端,但无论如何一定要认真读几遍,慢慢品味,慢慢理解。
异步几乎是JavaScript世界里最重要的执行机制之一了,也不厚,很容易读完,但不一定能一遍读懂。
关于SQL,我也是半瓶子醋,推荐你几本名著看看:
纯初学者推荐图灵出的《SQL必知必会(第4版)》,写得很明快,概念非常清楚。这本书用来学习关系型数据库也很不错,至少基本概念比大部头的教材说得清楚得多。
您好,很高兴回答您的问题。
您说的以上几个,JavaScript是比较常规的编程语言,SQL编程相对限制比较窄,只是对数据库方向的。而CSS和HTML虽然也是像代码一样,当时只能把他们当做标记语言。因为他们只是对文件的描述,真正解析他们的还需要程序去解读,所以他们不是编程语言。实际上编程语言应该具有逻辑性,能定义变量,能定义循环啊什么的,可以实现并解决一些常规的问题。
希望我的回答能帮助您,欢迎关注。