一、图灵完备
1、定义:
在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。这个词源于引入图灵机概念的数学家艾伦·图灵。虽然图灵机会受到储存能力的物理限制,图灵完全性通常指“具有无限存储能力的通用物理机器或编程语言”。
二、如何快速学会使用一门编程语言
- 了解编程语言的历史及特点并搞定开发所需计算机运行环境:先花点时间了解该编程语言的开发环境,具有哪些优势,适用于哪些场景,又有哪些不足,使用合适的技术解决合适的问题。
- 掌握编程语言的基本程序逻辑语法:从程序逻辑开始切入,变量怎么定义,程序逻辑语法规则(顺序、循环、分支等)。
- 掌握变量是程序设计的基础:(1)区分变量是静态类型还是动态类型,编程语言是强类型还是弱类型;(2)基本类型和封装类型;(3)传递引用还是传递值;(4)时间日期类型的实现和使用;(5)字符串的实现方式和种类;(6)正则表达式。
注:
①强类型、弱类型: c语言、php是弱类型编程语言,javascript、python、java 是强类型语言,强弱是指这个编程语言的环境通过我们程序给它设置的值,它是否能自己确定类型是什么;
②动态类型、静态类型: 声明变量的时候不用指定变量类型的是动态类型,反之为静态类型(强制类型转换在静态类型编程语言中很常用);
③值类型、引用类型: Java的引用类型在堆中,java既保留值类型又保留了引用类型(即java的基本类型和封装类型),c和c++保存了值类型,引用类型是通过指针来实现的,python,javascript的所有变量都是引用类型。 - 容器对象学习(通常是指数组,列表,字典,java的集合等复杂对象类型):(1)容器对象的种类与实现原理;(2)容器的遍历;(3)容器深浅复制;(4)容器的序列化与反序列化;(5)容器的基本操作。
- 编程语言实现抽象的方法、类、对象、接口与函数的实现和使用。
- 函数式编程的支持是现代化编程语言的标志,甚至一些古老的面向对象编程语言都开始支持函数式编程,比如 java、php。(1) 高阶函数对象;(2)算法特性与编程习惯(如链式与法,闭包等)。
- 依赖项目管理工具与生态支持,如 java 的 maven,gradle;php的 composer;ios 的 CocoaPods;js 的 npm ;python的pip ,anaconda 等。
- 内置高级功能,通常现代化编程语言都支持某些高级功能,比如并发模型,多线程,多进程,系统调用,磁盘文件管理、数据库操作,网络支持等特性。