置顶当然给小🍆啦
我并不想要永恒…… 因为我所看到的世界——现在就存在于此
Mash Kyrielight マシュ・キリエライト
属性:秩序·善
性别:女性
身長/体重:158cm・46kg
假想宝具 拟似展开/人理之础
阶级:D 种类:对人宝具
Lord Chaldeas
温柔可爱的小天使难道会有人不喜欢吗?
而且能够满足胸腰腿腋臀等等各派性癖
有着从常服中完全看不出来的好身材,穿衣显瘦+眼镜+闷骚的人设可能是从沙条绫香身上继承来的,但比绫香要阳光了很多。
人生经验虽然只有与世隔绝的不到十八个年头,知识量却非常异常丰富,远超不少屏幕前的咕哒。不太说多余的话,但吐槽总能吐到点子上。有着小鸟一样的精神构造,天真且不会怀疑别人,为了自己的信念而坚决行动,不会因为和他人的生命比较下来自己的生命如此短暂而悲伤,因此也就不会有像盖提亚一样对于生命终会终结一事有着悲叹。
虽然剧情里没有明说,但实际上是食物爱好者,和季节有关的语音里很多都和食物相关。不擅长饮酒,容易喝醉,曾借着酒意积极地抱住咕哒,不过实际上从玛修能够抗毒这一层面来考虑的话,可能不是生 ...
语言和文法
本节前言:
编译器要对高级程序设计语言进行词法、句法等分析;
要想让计算机自动地分析语言,就要把相关的语言学知识,也就是文法提供给计算机
字母表(Alphabet)和串(String)
字母表
基本概念:设字母表ΣΣΣ是一个有穷符号集合
符号:字母、数字、标点符号、…
比如:
二进制字母表:{0,1}
ASCII字符集
Unicode字符集
字母表上的运算
字母表Σ1Σ_1Σ1和Σ2Σ_2Σ2的乘积(product)
类似于将符号的拼接看作乘积操作
Σ1Σ2={ab∣a∈Σ1,b∈Σ2}Σ_1Σ_2 = \{ab|a∈Σ_1,b∈Σ_2\}Σ1Σ2={ab∣a∈Σ1,b∈Σ2}
例:{0,1}{a,b}={0a,0b,1a,1b}\{0,1\}\{a,b\}=\{0a,0b,1a,1b\}{0,1}{a,b}={0a,0b,1a,1b}
字母表ΣΣΣ的n次幂(power)
n次幂:长度为n的符号串构成的集合
Σ0={ε},Σn=Σ×Σn−1,n≥1Σ^0 = \{ε\}, Σ^n = Σ\timesΣ^{n-1},n\geq 1Σ0={ε},Σ ...
编译原理引论
什么是编译?
计算机程序语言可以分为:
机器语言(Machine Language):
特点:可以被计算机直接理解
与人类表达习惯相去甚远
难记忆、编写、阅读,易写错
汇编语言(Assembly Language):
特点:在机器语言的基础上引入助记符
依赖于特定机器,非专业人员使用受限制
编写效率依然很低
高级语言(High Level Language):
特点:类似于数学定义或自然语言的简洁形式
接近人类表达习惯
不依赖于特定机器
编写效率高
一个例子:人工英汉翻译
编译(Compiling):将高级语言(源语言)翻译为汇编语言或机器语言(目标语言)的过程
即:高级语言->编译->汇编语言->汇编->机器语言
或:高级语言->编译->机器语言
例:x=2 -> MOV x,2 -> C706 0000 0002(用十六进制表示的二进制数)
编译器在语言处理系统中的位置
为了建立可执行目标程序,除编译器还需要一些其他工具进行配合:
预处理器(Preprocessor):
一个源程序可能分成几个模块 ...
【转】X86 CPU发展历史
转自csdn
近日由于需要,我对x86的CPU架构发展历史进行了调研与学习。目前主流的x86架构,其先进的技术代表厂家就是Intel与AMD,它们相爱相杀的故事广流于家家户户。但是我整理Intel的相关CPU发展就花了2、3个星期(期间还有别的事情),写了我1W5的字,累屎我了,而AMD的相关产品还没来得及整理与写入。关于Intel的芯片发展过程,相关的整理网站其实还不少,但大多数都停在2011年(因为也是那个时候写的),也就是截止到Intel Core架构之前,而后续的介绍文章都很稀碎。我借鉴了很多很多诸如这样的文章与维基百科,主要参考网站都放在了文章末尾,但是没来得及看是否有相关的文献内容,再删减去Intel、AMD、IBM等公司的发展决策与心里路程,仅仅是单单将处理器部分的内容整理出来,形成这篇文章,希望能对自己,以及其他想对ntel x86处理器这么多年来大致的发展过程有些学习的CPU芯片小白们有些许的帮助!
在内容叙述架构上,由于我去年学习了计算机结构体系内容,因此本文主要按照时间顺序,对Intl发布的主要的几个芯片与新架构进行节选与简单的介绍,前期主要记录何时芯片/架构新加 ...
【转】世界双雄:微软和苹果
转载自知乎
苹果和微软,这是一对缠斗了近半个世纪的欢喜冤家,先看一张对比图。
1975年,20岁的盖茨在哈佛上大二,被年长两岁的保罗.盖伦连哄带骗,退学后一起创立了微软。
1976年,21岁的乔布斯从里德学院退学,说服了大他五岁的斯蒂芬.沃兹尼克尔,共同创建了苹果。
从那时开始,这两位同龄人,正式进入个人电脑领域,带领着各自的公司,开始了近半个世纪的对决。往后的四五十年中,苹果和微软,彼此斗争,相爱相杀,共同将PC送入千家万户。
也许是巧合,经历了各自的兴衰后。2020年,微软和苹果的市值双双突破1.4万亿美元,成为市值最高的IT企业,遥遥领先于第二梯队的谷歌、亚马逊。
究竟是什么支持着这两个半百老人,长盛不衰,走到如今呢?
微软
让我们先从微软开始说起。
微软诞生
1975年,保罗.盖伦拿着Altair 8800的资料,给盖茨描绘了PC(个人电脑)的美好蓝图。
戴着厚重眼镜的盖茨最终被他说服,从哈佛退学,在那一年,两人一起创办了一家公司,由保罗.盖伦提议,命名为MicroSoft。

那一年,他们还在为Altair 8800电脑设计Altair BASIC编辑器,这个编辑器 ...
makefile编写(3):条件执行和函数
注:本系列内容大部分是基于GNU make的标准,其中cc命令默认调用Linux自带的c编译器程序
makefile介绍
makefile编写(1):规则
makefile编写(2):变量
makefile编写(3):条件执行和函数
makefile条件判断
makefile的条件语句可以根据一个变量的值来控制make执行或者忽略makefile的特定部分,使用条件控制可以增加处理的灵活性和高效性。条件语句可以是两个不同变量、或者变量和常量值的比较。要注意的是:条件语句只能用于控制make实际执行的makefile文件部分,无法控制规则的shell命令执行流程。
下面还是以一个简单的例子开始:判断$(CC)变量是否为gcc,如果是的话则使用GNU函数编译目标
libs_for_gcc = -lgnu
normal_libs =
foo: $(objects)
ifeq ($(CC),gcc)
$(CC) -o foo $(objects) $(libs_for_gcc)
else
$(CC) -o foo $(objects) ...
【转】PowerPC、X86和ARM架构区别
在嵌入式领域,存在着三种处理器通用的架构,PowerPC、X86、ARM,本文将对这三种架构进行对比分析。
PowerPC
PowerPC的由来
1975年,IMB公司801小型计算机工程在RISC机体系结构方面做了许多开创性试验。801计算机与贝克莱大学的RISC处理器引起了RISC机革新运动,然而801计算机仅仅是一个用来演示某种概念的原型机。801工程的成功致使IBM公司开发一种商业的RISC工作站产品,这就是RT PC。
RT PC于1986年诞生,它采用了801的体系结构概念,成为一个实际产品。RT PC未获得商业成功,它有许多性能相当或更好的竞争产品。1990年IBM公司在总结了801和RT PC两产品经验教训的基础上生产了第3个产品即IBM RISC SYSTEM/6000。它是一个类似RISC的超标量计算机,市场定位是高性能工作站。此产品推介后不久,IBM公司开始把这种计算机称为Power结构。
1991年,IBM公司与MOTOROLA公司(摩托罗拉公司,6800系列微处理器开发商)、苹果公司(该公司将MOTOROLA芯片装入Macintosh计算机)结成联盟,出产 ...
【转】Explorer.exe到底是什么?为什么从Windows 95开始一直传承至今?
转自知乎:韩朴宇
explorer.exe
是Windows95到Windows Me,Windows NT4到Windows10的默认shell(代替了Windows3.2的程序管理器),同时也是默认的文件管理器(代替了WinFile)。
explorer负责了任务栏,开始菜单,桌面的显示,同时也是文件管理器,功能复杂,实现起来更加复杂(尤其是Windows10,包含了很多UWP组件,稳定性差)。explorer提供了接口可以被第三方DLL注入,因此更会降低稳定性,一旦explorer主进程崩溃,桌面和任务栏就会消失(一般会自动重启)也因为explorer提供了用户打开其他程序的主要方式(开始菜单/固定到任务栏/桌面),Windows10的任务管理器定位到explorer.exe时结束进程会变成重启进程。
shell是操作系统提供给用户的交互程序,分为图形shell和命令行shell两种。shell直译就是壳,即内核外层的东西。

https://zh.wikipedia.org/wiki/Shell
常见的命令行shell有Windows的cmd.exe,powershell ...
makefile编写(2):变量
注:本系列内容大部分是基于GNU make的标准,其中cc命令默认调用Linux自带的c编译器程序
makefile介绍
makefile编写(1):规则
makefile编写(2):变量
makefile编写(3):条件执行和函数
makefile变量
在makefile中的定义的变量从效果和实现来看比较像c/c++语言中的宏,它代表一个文本字串(没有数据类型),可以使用在目标文件、依赖文件、命令或是makefile的其它部分中,在makefile中执行时其会自动地展开在引用的地方。但是与c/c++的宏所不同的是,makefile的变量值是可以在文中改变的,具有“变量”的性质(其实只要把makefile的执行过程单纯类比于c程序的预处理过程,会发现两者并没什么不同)。下面给出一个简单的例子:
# 变量会在使用它的地方精确地展开,就像c/c\++中的宏一样
f = c
prog.o : prog.$(f)
$(f)$(f) -$(f) prog.$(f)
# 展开后得到:
prog.o : prog.c
cc -c prog.c ...
【转】命令行界面(CLI)、终端(Terminal)、Shell、TTY的区别
虽然这个话题已是老生常谈,搜索一下应该也能找到大把的相关文章。不过难得提到了这方面,就趁此机会把我的理解写下来,一来看看我是不是真正理解了,二来看看我能不能把它们之间的区别讲得更加简明易懂。
太长不看
命令行界面(CLI)=使用文本命令进行交互的用户界面
终端(Terminal)=TTY=文本输入/输出环境
控制台(Console)=一种特殊的终端
Shell=命令行解释器,执行用户输入的命令并返回结果
什么是命令行界面?
命令行界面,通俗来讲,就是你看过的那种满屏幕都是字符的界面。
命令行界面(英语:Command-line Interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予> 以执行。 —— 摘自 Wikipedia
相信大家对于影视作品中出现的那种,某黑客/程序员/安全专家坐在电脑前猛敲键盘、屏幕上放眼望去全是滚动的字符的场景不会感到陌生。这种靠一行行命令的输入输出进行交互的用户界面,就叫做命令行界面。
▲ 电影「黑客帝国」剧照
在图形用户界面(GUI)已经完全普 ...