Past.0

序:

Hello大家吼,这里是多年没写教程的任桑~~~这次不写c语言了,什么?c语言教程的坑这么多年还没填完?不管不管,我现在就不写c了,谁爱写谁写去……

我会尽量贴合以前写c语言教程的风格来写这一篇,也就是纯文本文档敲……

然后,让我们从python开始新世界吧

第一节:程序语言的类别

语言的分类其实还是有蛮多种的

比如机器语言,汇编语言,高级程序语言

比如机器语言,汇编语言,面向过程语言,面向对象语言

比如机器语言,汇编语言,标记语言,编程语言,脚本语言

没错,不管怎么分,机器语言和汇编语言都是遗世而独立的

机器语言就是计算机用的语言,很简单,0和1,我们地球人不用这个

汇编语言其实不是语言,它的正确名字应该是cpu指令集汇编

参考一下知呼的答案:

处理器架构就是处理器的硬件架构,称为微架构。是一堆硬件电路,去实现指令集所规定的操作运算。

是的,指令集决定了处理器的架构,因为处理器架构就是用硬件电路实现指令集。但是具体用什么样的处理器架构,设计怎样的硬件电路,每个人设计的都可以不一样。MIPS是一种采取精简指令集(RISC)的处理器架构,既有指令集,也有相应的处理器架构。大名鼎鼎的龙芯就是MIPS的。

汇编语言是用人类看得懂的语言来描述指令集。否则指令集的机器码都是一堆二进制数字,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。

地址:https://www.zhihu.com/question/23474438

ok,让我们接着往下

面向过程和面向对象其实和语言本身关系不大,它更多的只是一种程序设计思路,虽然在语言的设计开发过程中,本身会有偏向和着重点,但是除了DSL,高级程序语言一般不会只针对某一方面,具体的在这里不再作表述,感兴趣可以自己谷歌一下

我现在写的是python教程,python是一个脚本语言,所以我们直接说第三个

标记语言在我们的日常生活中非常常见,比如你现在在看的网页,html的正式名称就是超文本标记语言(HyperText Markup Language)

通过标记定义文本,然后在使用内部的解释器对被标记的文本进行简单的处理

具体的实现原理也可以参考我正在开发的死亡萝莉的富文本构架:https://github.com/pokemonchw/dieloli/blob/master/pyera_engine/core/RichText.py

编程语言就是用来编写程序的语言

比起只关心最终表现的标记语言,传统的编程语言的开发重心,更多的在考虑表现的过程上

比如说你同样是要在屏幕上绘制行星运动轨迹

你使用标记语言,只要直接告诉电脑,这几张行星图片要怎么跑就ok

而你使用传统的程序语言,更多的开发重心是在模拟行星的运动过程,或者电脑要如何绘制图片,以及绘制图片的运动轨迹上

在这两者之间的,就是我们的脚本语言

脚本语言同时具备标记语言的特征(无需编译)和传统编程语言的能力(注重过程)

设计者将他预设的,有关这个脚本语言底层实现的部分,进行了预编译和封装,我们执行的脚本,只是在通过固定的接口对他们封装的程序进行调用

因而,在大多数时候,我们都需要定义对应的解释器,或者通过固定的程序去执行这个脚本

比如py脚本只能通过python的解释器去执行,js离了浏览器也不能跑

但是,在底层被大量封装,失去了对内部的直接管理的同时,我们也拥有了比标记语言更多的可能性

比如说我在死亡萝莉中,用tk伪造了一个shell出来,为了完成它,我自定义了监听键鼠操作的接口,覆写了输入框的部件,若是你使用标记语言,这些都是无法做到的,这也是H5构架除了html+CSS,还需要一个js的原因

第二节:python语言的介绍

如上节所言,python是一门脚本语言

同样的,它也有着它的解释器

比如你在官网下载python3后安装到本地的解释器是cpython,顾名思义,它是由c语言实现的

cpython的项目地址:https://github.com/python/cpython

如你所见,其实就是将c语言的函数实现的功能进行集成,然后封装成模块,之后如同死亡萝莉的富文本那样,读取你的py脚本,来对这些封装的模块进行调用

需要注意的是,并非所有的程序语言都是从方便人类使用的角度进行设计的,比如Brainfuck

它的helloworld是这样的:

++++++++++[>+++++++>++++++++++>+++>+««-]>++.>++.>+.+++++++..+++.>++.«+++++++++++++++.>.+++.------.--------.>+.>.

回归正题,python也有着许多的解释器

比如从cpython之上扩展增强而来的IPython

又或者用java实现的Jython

然后是pypy,它使用jit技术,将python脚本直接编译成机器码,而非调用执行c的函数

最后是微软的IronPython,它是微软在.net实现的编译器,将py脚本编译为.net的字节码来执行

什么?你说这俩和上面对脚本语言的定义有冲突了?不不不,python的实现方案确实是以cpython为基准的,这两者是为了更快的速度(pypy),或者为了更好的兼容调用(.net的实现接口),而强行设计出来的额外技术栈

解释器的选择上各有优劣,不过通常来说,我们都是以cpython为标准即可

第三节:python语言的用途

作为一门地球人使用的程序语言,它的用途十分的广泛

比较常见的,它被应用于科学研究领域,什么?你说julia?去去去

或者也有人用它来做服务器后台……甚至是网站前端开发……当然,这就和用见鬼的ruby写网站一样……

稍微大众一些的,用它来写爬虫,抓取网站数据,比如一些常见的,从气象台的api获取天气数据,从github上抓取别人的commit纪录进行推送,或者那些臭名昭著的广告机……要不也可以用来抓取网易云音乐的歌单进行推荐之类

不过这个教程……我不教你写爬虫……爬虫实在没什么好讲的,抓下数据,写个正则,处理一下,完事……

当然,它也可以用于深度学习……你问我深度学习有什么用?阿尔法狗啦,或者预测股市啦,或者警方的人脸识别啦,甚至监狱系统里,用来识别和预测罪犯可能存在的暴力行为(目前已经有应用,未来可能不再局限于监狱,你懂的)

不过,这个教程要给你讲的只有一种,那就是它的本地应用设计

第四节:本教程预期的内容和教学方式

比起以前写的c语言教程,这个教程会稍微深入一些

更多的说明在程序的设计思路和编程经验上

如你所见,我曾经是个c佬,后来去写了ruby,然后是js,c++,c#,java,gml,krl,gds,lua,各种各样,杂七杂八……

所以我的思路不会太局限于某种语言特性,或者是写面向过程还是面向对象

同样的,我可能也会存在着一些,为了自己的编写舒适度,无视语言特性和优秀的解决方案,自己强行实现接口进行调用的问题

若是有人注意到了,也欢迎指出

在本教程中,我会从helloworld开始,然后参考正在开发的死亡萝莉给大家进行讲解

并给出死亡萝莉的设计和实现思路

也欢迎大家提出意见,以及为死亡萝莉贡献代码

以上

联系方式:

老规矩,谷歌邮箱

pokemonchw@gmail.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,898评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,401评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,058评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,539评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,382评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,319评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,706评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,370评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,664评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,715评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,476评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,326评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,730评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,003评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,275评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,683评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,877评论 2 335