03 2019 档案
摘要:主要目标是提供抽象能力和解决值类型的多态问题 Actually, Abrahams says, those are all attributes of types, and classes are just one way of implementing a type. Yet, they exac
阅读全文
摘要:数字证书是一个电子文档,其中包含了持有者的信息、公钥以及证明该证书有效的数字签名。 证书签名与验签: 签名: 上级证书拥有者,搜集到下级证书申请信息后,将整体信息使用私钥签名; 验签: 使用上级证书的公钥对签名信息完成; 签名函数: signdata = encrypty(privateKey, h
阅读全文
摘要:1、概念: 定理是经过受逻辑限制的证明为真的陈述。 定律是对客观事实的一种表达形式,通过大量具体的客观事实归纳而成的结论。 公理是指依据人类理性的不证自明的基本事实,经过人类长期反复实践的考验,不需要再加证明的基本命题。 2、区别: 定律是描述客观世界变化规律的表达式或者文字。 公理是不需要认证的,
阅读全文
摘要:系统论的两个方面: 使用系统论研究系统; 使用系统论构建系统;
阅读全文
摘要:系统论是宏观上的还原论 系统论是大尺度的还原论的时空思考; 二者都是认识复杂事物的方法论; 二者都是复杂性理论的果实;
阅读全文
摘要:方程(equation)是指含有未知数的等式。是表示两个数学式(如两个数、函数、量、运算)之间相等关系的一种等式,使等式成立的未知数的值称为“解”或“根”。求方程的解的过程称为“解方程”。 方程中文一词出自古代数学专著《九章算术》,其第八卷即名“方程”。“方”意为并列,“程”意为用算筹表示竖式。 方
阅读全文
摘要:指针的核心:内存(地址)+ 类型 一、指针与内存 指针本身是内存的集合空间的索引; 内存的集合空间包含变量、命令等等; 定义一个指针,是内存空间(栈区)添加了元素; 给指针赋值,是将指针索引指向内存空间的具体地址; 指针使用,是将索引空间类型化,然后使用这个类型; 内存、地址与位置:指针与堆栈 指针
阅读全文
摘要:模式匹配用到集合论、装箱解箱用到范畴论
阅读全文
摘要:弗雷格的逻辑体系,表现在今天就是我们数理逻辑中的命题演算和谓词演算(用数学的方法研究关于推理、证明等问题的学科就叫做数理逻辑。也叫做符号逻辑)。弗雷格第一次用精确的句法构造出形式化的人工语言,使得逻辑推理表示为机械演算即所谓的推理规则成为可能。从这个观点看,概念文字是我们今天使用的计算机程序设计语言
阅读全文
摘要:按照一定规则使用匹配模式在目标空间进行搜索,然后执行相应操作; 运行时系统将kvc的运行机制解释为模式匹配,将值的兼容性问题解释为装包解包问题 一、模式匹配 The default implementation of the NSKeyValueCoding protocol provided by
阅读全文
摘要:多态:抽象类型可以泛化为具有不同行为的具体类型;在运行时根据类型做出不同的行为解释; 动态:语言元素的结构和行为可以在运行时修改; 多态需要运行时的解释执行; 多态需要在运行时获取类型和行为信息从而进行修改; 动态是将可修改范围由数据扩展到指令区; 动态的本质:一切皆数据、一切皆可修改。 二者都需要
阅读全文
摘要:One can explicitly write @objc on any Swift declaration that can be expressed in Objective-C. @objc相关的参量只能修饰类、类的成员、扩展以及只能被类实现的协议; 下面开列修饰的情况和说明 一、无修饰 N
阅读全文
摘要:The convention of the function, indicated by the attribute. This is similar to the language-level @convention attribute, though SIL extends the set of
阅读全文
摘要:Metatype Types A concrete or existential metatype in SIL must describe its representation. This can be: @thin, meaning that it requires no storage and
阅读全文
摘要:泛型编程思想:复合类型的抽象和代码复用
阅读全文
摘要:一、函数的类型: 1、输入输出的映射形式; 2、定义了访问函数时的调用约定;cpu在访问函数是参量的布局形式; 3、相同函数类型的变量可以相互赋值; 函数作为类型是函数式编程的基石; 二、函数的变量: 定义函数类型-》定义变量-》给 变量赋值; 常见形式: 常指针变量:函数类型 = 函数实现; 函数
阅读全文
摘要:类型运算: 类型指定、类型约束、类型依赖; 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。 https://www.cnblogs.com/arxive/p/6179972.html 因而函数重载是一种多态,而这样的多态被称作ad-hoc多态。 泛型程序设计(generic pro
阅读全文
摘要:多态的本意:是抽象类型具体实现的多样化; 然后对具体类型的行为,作出或相同或不同的解释; 多态是一个类型理论的名词;对抽象类型的行为作出了解释; 抽象类型的指代作用举例: 这个牛是一头白牛,这个牛(这头白牛)........ The most commonly recognised major cl
阅读全文
摘要:两个方面: 1、抽象类型的具体化; 2、方法调用的解释 同一个接口方法调用在运行时,针对不同的抽象类型具体化变量输入,具有不同的解释; 解释机制: 编译器插入:查找、绑定、执行; 运行时解释:查找、绑定、执行;对全部消息调用进行解释? 同一个接口函数在接收到不同的接口实现时,存在不同的解释;
阅读全文
摘要:异常机制的本质: 用冗余代码实现额外信息的传递: 异常机制的本质是异常机制代码的解释权: 作出解释即用冗余代码实现异常机制的额外逻辑; 1、异常信息的表达:包含什么:在哪里出的什么错误; 2、异常信息的传递:栈帧、长跳转; 3、异常的处理: /** * 抛出异常对象,对应代码:@throw e; *
阅读全文
摘要:Programming is about ideas, languages are just a way to express them. https://thzt.github.io
阅读全文
摘要:描述类型系统的语言 类型系统主要用来说明编程语言的定型规则,它独立于类型检查算法 定义一个类型系统,一种重要的设计目标是存在有效的类型检查算法 类型系统的基本概念可用于各类语言,包括函数式语言、命令式语言和并行语言等 我们后面讨论用形式方法来描述类型系统 类型系统的形式化 类型系统是一种逻辑系统 有
阅读全文
摘要:计算机程序是建立在计算机硬件和一系列规则、协议、规范、算法基础之上的;
阅读全文
摘要:所有的类型都是在数据类型和函数类型的基础上进行组合和扩展而来;
阅读全文
摘要:赋值规则检查; 基础运算规则+; 方法调用权限; 类型一致性检查、类型行为检查; 类型系统是对类型表达式合规性的检查; Type systems are generally formulated as collections of rules for checking the “con- siste
阅读全文
摘要:静态类型:类型的变量有明确的行为约束; 动态类型:为所欲为; 动态类型:动态类型绑定类型;动态:可变、晚绑定; 静态类型语言在编译时便已确定变量的类型,而动态类型语言的变量类型要到程序运行的时候,待变量被赋予某个值之后,才会具有某种类型。 https://www.cnblogs.com/Roylh/
阅读全文
摘要:swift 该死的派发机制 final static oc类型 多态类型 静态类型 动态函数 静态函数 nsobject: 1、缺省不再使用oc的动态派发机制; 2、可以使用nsobject暴露出来的接口函数; 3、其它行为与swift的class一样; 多态类型:class与protocol 静态
阅读全文
摘要:类型的内存模型的3个问题: 1、包含什么:附加信息 2、怎么布局:内存对齐 3、使用场景:怎么使用附加信息 一、包含什么? 除了包含结构类型的显式成员变量外,类型内存模型需要解决附加信息的引入问题 1、附加信息(Opaque)有哪些: 类型信息、函数信息、继承信息、内存计数等; 2、为什么有附加信息
阅读全文
摘要:面向多态编程是面向抽象编程; 多态的本质是抽象; 一、多态的分类: 1、由函数到方法,隐藏缺省参量从而实现抽象;面向接口与继承; 2、泛型:参量化类型抽象出共同的结构和行为; 3、高阶函数:抽象出共同的基础操作; 4、运行时类型信息; 二、多态的支持系统分为两类: 1、类型支持; 2、函数调用的解释
阅读全文
摘要:思考则第一法则:目的性 目的性;思考的目的性; 只有有目的的受控思考才是有效思考; 思考的方式,处于第二位;
阅读全文
摘要:Hard Constraints on Resilience The root of a class hierarchy must remain stable, at pain of invalidating the metaclass hierarchy. Note that a Swift cl
阅读全文
摘要:Opaque:对使用者来说,类型结构和机制明晰即为transparent,否则为Opaque In computer science, an opaque data type is a data type whose concrete data structure is not defined in
阅读全文
摘要:一、测试代码 class BaseCallClass{ func NormalCall(){} @objc func OcCall(){} @objc dynamic func OcDynamicCall(){} } class DerivedCallClass:BaseCallClass{ ove
阅读全文
摘要:class NSObjectBase: NSObject { func Msg_Normal(){ } func Msg_Second(){} func Msg_Third(){} @objc func Msg_ObjcX(){} @objc dynamic func Msg_Objc_Dynami
阅读全文
摘要:swift class的虚函数表、扩展、@objc修饰的研究 工具: swiftc -emit-sil BaseClass.swift | xcrun swift-demangle > ClassFunc.silgen cat ClassFunc.silgen 目标: 1、@objc和@objc d
阅读全文
摘要:FFI stands for Foreign Function Interface. A foreign function interface is the popular name for the interface that allows code written in one language
阅读全文
摘要:CPU从逻辑上可以划分成3个模块,分别是、和,这三部分由CPU内部总线连接起来。如下所示: 控制单元:控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Con
阅读全文
摘要:内部架构 CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块,分别是控制单元、运算单元和存储单元 。其内部架构如下: 【1】控制单元 控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register
阅读全文
摘要:别名:指令指针、指令地址寄存器、程序计数器; 操作:顺序操作(计数器加一)、分支操作(计数器修改); The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium mic
阅读全文
摘要:所谓的函数只不过是符合函数调用约定格式的一段程序指令而已。 与可执行文件的格式、文本格式、图片格式,在结构和格式的抽象级别上没有本质差别。
阅读全文
摘要:https://www.technotification.com/2018/08/protocol-oriented-programming-swift.html https://www.toptal.com/swift/introduction-protocol-oriented-programm
阅读全文
摘要:函数的绑定 动态绑定的特征:参量中包含接口类型或继承类型的父类型: 参量中没有抽象类型或继承类型的函数是静态绑定的。 动态函数的调用,包含两个步骤:1、查找(绑定);2、调用; 函数动态绑定的支持: 1、编译器支持:虚函数表机制;编译器插入代码; 2、运行时支持:oc的派发机制;运行时插入代码;
阅读全文
摘要:具有接口类型和泛型双重属性;是接口化的高阶泛型; 具有关联类型的协议不能作为类型,只能作为类型约束使用; 类型的具体形态:变量的类型、函数的输入输出类型、容器元素的类型; 带有关联类型的协议作为类型只能和泛型类型一起使用;要使用带有关联类型的协议,必须先定义泛型类型; 在泛化为构造器类型时,作为ty
阅读全文
摘要:从程序的本质上来讲,是对算法以及数据的重视程度的不同。程序的本质是算法和数据。 面向过程编程重视算法,忽视数据。 面向对象编程侧重点在数据,对算法的重视程度不如面向过程编程。对数据的重视,使面向对象编程具有继承,封装,多态等特性,在各方面提高了编程的效率。 https://www.cnblogs.c
阅读全文
摘要:函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。 所有传递给函数的数据都是显式传递的。 方法也是一段代码,通过一个与对象相关联的名字来进行调用。方法和函数大致上是相同的,但有两个主要的不同之处: A function is a
阅读全文
摘要:泛型:泛型结构(类、结构体)、泛型函数(从本质上来说也是一个结构)统称为泛型; 泛型参量:泛型中的待定参量; 类型指定(具体化):对泛型结构中的泛型参量进行指定,构造出具体的类型; 递归定义:泛型结构中的泛型参量依赖于外部的环境泛型参量; 约束:对一个泛型结构的泛型参量的可指定类型范围进行限制;或对
阅读全文
摘要:一、类型构造使用:参量类型具体化指定(构造式引用); 使用已经构建完成的泛型结构 先指定泛型参量的类型,然后将泛型结构作为确定的类型使用: struct Stack<Element> {} var stackOfStrings:Stack<String> = Stack<String>() func
阅读全文
摘要:泛型编程:以参量化的不确定类型为中心的编程;类型参量化; 泛型编程的部分是结构:类型构造器的结构、泛函的结构; 泛型编程从抽象的角度看(共同性): 是提取与类型无关的算法和数据组织形式; 从可变性(扩展性)(个性化)看: 有些语言需要并支持了泛型结构在某些类型上的扩展swift; 从类型角度看: 在
阅读全文
摘要:swift是强类型语言 强类型:变量的类型明确,变量的赋值必须符合类型约束;变量的类型转化必须显式进行。 强类型:类型规则的制定与检查; 动态类型:变量的具体类型由值类型确定,它的行为也由值类型确定; 动态类型、静态类型:强调类型的绑定; 相对于oc的kindof,允许类型的继承转换; 所有的类型转
阅读全文
摘要:协议多态: 函数式编程多态:高阶函数的多态性; 泛型多态:泛型的基于约束编程; 共同点:相同的接口,不同的行为;
阅读全文
摘要:面向对象的本质:基于对象+面向接口+继承。 继承是对面向接口编程的升级;使得接口的复用能在继承链上进行; 继承的另一重含义的复用。
阅读全文
摘要:一、多态的本质 多态的本质:同一函数接口在接受不同的类型参量时表现出不同的行为: 不同对象能够调用同一接口,是因为它们含有统一的抽象纬度:接口; 同一函数能够接受不同对象的调用,是因为函数的参量是一个抽象类型(接口); 环境变量(主体类型)作为接口函数的特殊输入对接口的实现起着决定性的作用; 同一个
阅读全文
摘要:类型约束的本质是:类型构造器在约束类型的基础上构造新的类型
阅读全文
摘要:类型约束的描述,属于声明式编程的一支; 基于类型约束的编程: 1、基于约束的类型声明: 只有符合约束的类型才能进行赋值; 2、基于类型约束的函数构造; 这里主要指新函数的构造; 函数是一种特殊的类型,是绑定在数据类型上的类型; 只有符合类型约束的构造类型的实例(符合类型),才能访问这些函数类型; 3
阅读全文
摘要:复合类型(类型构造器)的基本功能由复合类型的主类型确定; 复合类型的扩展功能由主类型和参量类型共同确定; 函数式编程的功能扩展由高阶函数和混入函数完成 public struct Array<Element> { public func map<T>(_ transform: (Element) t
阅读全文
摘要:swift面向协议编程的根本原因在于值类型的存在;面向对象必须要有引用类型的支持; Protocol Oriented approach was introduced to resolve some issues in programming and it also differs in vario
阅读全文
摘要:所谓swift的类型擦除是指: moand转换; 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议、接口、或基类)暴露出来。 AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只将协议类型的信息暴露出
阅读全文
摘要:AnyHashable 属于无关联类型的擦除。 将具体类型的类型信息擦除掉了,只剩下协议类型的信息暴露出来。 类型擦除实践:将相同协议的不同实现屏蔽起来,暴露出类型的共同特征(协议接口)。 A type-erased hashable value. public struct AnyHashable
阅读全文
摘要:swift语言的特征: 类型系统:值类型与引用类型、泛型、协议类型 函数式编程:
阅读全文
摘要:类型与算法是绑定的,绑定的方式有以下几种: 1、类型定义时直接绑定; 2、扩展绑定; 3、继承绑定; 4、全局函数绑定;
阅读全文
摘要:Type Erasure Pattern We can use the type erasure pattern to combine both generic type parameters and associated types to satisfy both the compiler and
阅读全文
摘要:?协变性与逆变性是类型关系在范畴论的定义。是类型的继承关系在高阶类型中的定义? __kindof只是在统一继承体系下方便了类型转化,提供了使用时语法上的便捷;但是对于类型转换是否正确不做判定; kindDerived *derived = [self getInstance]; - (__kindo
阅读全文
摘要:关键词: 类型与功能绑定、类型指定、访问控制。 类型约束的本质: 1、是否强制指定具有某些特征的类型;看类型构造器的定义本身是否对类型有约束; 2、访问控制:类型构造器的功能分为通用功能和约束功能; 通用功能任何实例类型都能访问; 约束功能,只有符合约束的构造实例能够访问。 类型与算法(功能)绑定;
阅读全文
摘要:接口:what; 实现:算法;指令; 编程语言中,凡是不涉及到算法的部分,都可以认为是声明式编程。 命令式编程可以与算法划等号;算法要求严格的计算逻辑和控制,是实施细节的精准描述; 命令式编程与声明式编程只是侧重点的不同。一个侧重计算控制,一个侧重逻辑描述。 命令式编程通过一系列改变程序状态的指令来
阅读全文
摘要:三个关注点:1、形式;2、实现方式;3、使用方式; 一、基本形式: 形式:内部无泛型类型; 实现:只需指定类型和实现相应的功能即可; 使用:可以用在其他类型出现的任何地方; protocol Response { /// The task metrics containing the request
阅读全文
摘要:高阶函数负责数据的单次映射; monad负责数据处理流的串联,并使得串联函数具有相同的形式。 同时moand负责基础类型和高阶类型间的转换。
阅读全文
摘要:泛型编程不仅能泛化算法中涉及的概念(数据类型),还能泛化行为(函数、方法、运算)。 基础部分: 与类型无关的变量和函数,通用部分; 扩展部分(swift): 与类型相关的函数其它扩展; 泛型关注通用的算法和数据组织形式; 关注与类型无关的算法和数据组织形式; 偏重数据的泛型(强泛型成员变量)关注数据
阅读全文
摘要:类型的作用 定义数据的组织形式; 定义类型与操作的结合形式; 类型系统设计的一个重要指标是给类型添加操作的方式。 给类型添加操作。 如何给类型添加操作? 如何生成类型;
阅读全文
摘要:安全,有了类型系统以后就可以实现类型安全,这时候程序就变成了一个严格的数学证明过程,编译器可以机械地验证程序某种程度的正确性,从而杜绝很多错误的发生。正面例子:Haskell、Rust反面例子:C,动态语言 抽象能力,在安全的前提下,一个强大的类型系统的标准是抽象能力,能将程序中的很多东西纳入安全的
阅读全文
摘要:1、单体(数据)映射:基本操作;数据的单次映射; 2、管道流:数据的流程化处理 基础是monand类型,形式是声明式编程; Pipeline模型: 它以一种“链式模型”来串接不同的程序或者不同的组件,让它们组成一条直线的工作流。这样给定一个完整的输入,经过各个组件的先后协同处理,得到唯一的终于输出。
阅读全文
摘要:<高阶函数定义了高阶类型的处理(映射)、低阶函数处理了低阶类型的映射,高阶函数依赖于低阶函数> 高阶函数的特点: 1、定义的高阶函数本身的实现 ; 2、定义了参量函数的接口:输入、输出; 3、定义了高阶函数的功能部分对输入函数的引用或使用方式。 语义:定义高阶函数并声明混入函数的接口 本质是暴露低阶
阅读全文
摘要:https://blog.nswebfrog.com/2017/10/20/swift-practice-ui-chaining-code/
阅读全文
摘要:类型推断的前提是有待定类型和上下文。 1、由定义推断实现的类型; 2、由赋值推断声明的类型; 3、由实现推断泛型的类型; Type inference refers to the automatic detection of the data type of an expression in a p
阅读全文
摘要:对每一门编程语言的掌握都要仔细考究着门语言的类型系统。
阅读全文
摘要:理论和实际的学校是一个交互向上的过程。 理论是抽象的东西,是一般的东西; 实际是具体的东西,是个例; 从理论到具体是演绎; 从具体到理论时归纳; 理论的学校用于指导实际; 具体的分析用于强化理论; 二者的学习是一个交互的过程; 没有实际支撑的理论是纸上谈兵、是空洞之物; 没有理论支撑的实际是形而下,
阅读全文
摘要:为什么说swift是面向协议编程 public protocol ReactiveCompatible { /// Extended type associatedtype CompatibleType /// Reactive extensions. static var rx: Reactive
阅读全文
摘要:一、术语:指定类型 typealias:用于给关联类型指定类型; 通过类型推断给关联类型指定类型太过烧脑; 二、类型指定 1、具体类型实现协议后,直接指定;作为普通的泛型类型使用,指定类型即可; 2、将协议实现为泛型构造器,关联类型通过泛型构造器的输入类型指定; 3、关联类型本身有协议约束;需要先构
阅读全文
摘要:关联类型的形式为类型的引用进而进行约束提供了条件; 同时能够简化语法形式。 Swift: Associated Types http://www.russbishop.net/swift-associated-types Associated Types Series Swift Associate
阅读全文
摘要:都需要协议实现者提供具体变量; 否则认为不符合协议。 @protocol edddd <NSObject> @property(nonatomic, strong) NSObject *egooo; @end Auto property synthesis will not synthesize p
阅读全文
摘要:static与class 都有类型成员的含义;相对于实例成员; static的另一个意思是静态派发;所以不能被继承。 要使用动态派发和继承的机制必须使用class继承。 static的其它常见含义: 可见性;相当于private修饰符。 生命周期;
阅读全文
摘要:1、基础类型转换为高阶类型(monad),以便使用函数式编程的特性:map、reduce,pipeline、业务组织、异步编程等; 2、高阶类型转化为基础类型:以便使用基础类型的态射(计算)功能。 3、高阶类型的内部转换(泛型类型转换)--类型关乎复合--以便业务的组织。 高阶类型起到桥接的功能。
阅读全文
摘要:类型系统的作用? 数据的组织、访问规则,程序组件的结合性、类型信息的运行时等。
阅读全文
摘要:moand的编程学形式:一个(高阶)类型完成程序的组织。 将类型系统的转换与高阶函数进行了融合,相对于链式编程而言。 类型关乎复合 范畴论与箭头的复合有关。但是并非任意两个箭头都可以复合。一个箭头的目标对象必须与下一个箭头的源对象相同,这样的两个箭头方能复合。在编程中,我们将一个函数的返回结果传递给
阅读全文
摘要:在范畴论里,一个范畴(category)指的是这样一个好东西,它由三部分组成: 函子 前面对范畴的介绍反映了范畴内部各个对象之间的联系与相互作用,在范畴论里另外研究的重点是范畴与范畴之间的关系,就正如对象与对象之间有态射一样,范畴与范畴之间也存在某些映射,从而可以将一个范畴映射为另一个范畴,这种映射
阅读全文
摘要:起点: 高阶函数的复用,参量函数的混入、数据映射; 从输入到输出的映射。 一切皆是映射映射即流流即函数 进阶: 对异步的支持;惰性求值 对并发的支持;纯函数; 对栈内存的优化:尾递归; 终点: 函数式编程的组织及型变:monand 函数式编程语言的形式:声明式语言(以输入、输出(类型)、高
阅读全文
摘要:异步编程 Ebay技术架构倡导到处异步,异步能够提高系统的可伸缩性,有一种误解:认为异步就会慢于同步,其实异步后才能并行并发,利用多CPU的并行并发处理要比同步串联处理无疑性能要提升多。 异步的目的是从设计上解耦,从执行顺序上进行切分,将串行变成并行。 传统的同步编程是一种请求响应模型,调用一个方法
阅读全文
摘要:Rx编程的第一步是将native对象转换为monad对象 将基础类型转换为高阶类型,以便使用函数式编程的特性。
阅读全文
摘要:Reactive = Observables(响应)+ Schedulers(异步). Extensions = LINQ(语言集成查询) LINQ: The Operators of ReactiveX Operators By Category Creating Observables Oper
阅读全文
摘要:actor是一个无线程区别的内存访问对象;actor背后有线程支持;actor的事件处理依赖与这个线程(队列、池)。 actor是一种面向对象的线程(池)模型,强调对事件的响应;在iOS中相当于一种通信简化的runloop模型; 对比:数据结构化的线程模型,侧重于强调线程拥有的资源(栈、优先级、状态
阅读全文
摘要:竞争与合作 没有先后依赖关系的为竞争 有先后依赖关系的为合作
阅读全文
摘要:1、根据await调用链寻找最终的生产者或服务提供者; 2、请求服务; 3、进行执行环境切换,跳出顶层函数(第一个无await修饰的函数),执行后面的语句; 4、服务完成,将服务数据复制给最底层的await函数的返回值; 5、进行上下文切换,执行await后面的语句; 6、从1开始新的循环。 调用a
阅读全文
摘要:协程就是一种用户态内的上下文切换技术 我对协程的定义是:协程是在一个线程执行过程中可以在一个子程序的预定或者随机位置中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。他本身是一种特殊的子程序或者称作函数。 区别:楼上很好很精辟。 应用:协程基于generator,Python3中内置了异步
阅读全文
摘要:缘起 libco 协程库在单个线程中实现了多个协程的创建和切换。按照我们通常的编程思路,单个线程中的程序执行流程通常是顺序的,调用函数同样也是 “调用——返回”,每次都是从函数的入口处开始执行。而libco 中的协程却实现了函数执行到一半时,切出此协程,之后可以回到函数切出的位置继续执行,即函数的执
阅读全文
摘要:阿里妹导读:刚刚,阿里巴巴正式对外开源了基于 Apache 2.0 协议的协程开发框架 coobjc,开发者们可以在 Github 上自主下载。coobjc是为iOS平台打造的开源协程开发框架,支持Objective-C和Swift,同时提供了cokit库为Foundation和UIKit中的部分A
阅读全文
摘要:1、在用户空间中实现线程 (1)特点:把整个线程包放在用户空间,内核对线程包一无所知。从内核角度考虑,就是按正常的方式管理,即单线程进程(存在运行时系统) (2)优点: 1、用户级线程包可以在不支持线程的操作系统上实现。 2、线程切换至少要比陷入内核要快一个数量级。在线程完成运行时,它调用threa
阅读全文
摘要:一、构建流程 1、(异步)数据源(请求)的构建:Promise的构建并执行请求; 2、处理流程的构建:then将处理函数保存; 二、处理: 1、请求的响应返回; 2、调用后继处理流程。 三、 1、构建源promise的同时发起了异步请求; 2、构建后继处理流程是在一瞬间完成的; 声明式编程语言: 处
阅读全文
摘要:函数式编程与异步编程 函数式编程中,异步编程是惰性计算的根源,惰性计算是函数式异步编程的支持; 1、高阶函数都具有计算构建的功能; 2、函数式编程语言对异步编程的支持是通过惰性求值机制实现的; 3、惰性计算的变量在语言或机制的底层需要保存;在接口层面,通常是作为高阶函数的参量,需要特定的修饰符修饰;
阅读全文
摘要:这篇文章不是针对当前版本 Swift 3 的,而是对预计于 2018 年发布的 Swift 5 的一些特性的猜想。如果两年后我还记得这篇文章,可能会回来更新一波。在此之前,请当作一篇对现代语言并行编程特性的不太严谨科普文来看待。 2016-12-20 • 能工巧匠集 CPU 速度已经很多年没有大的突
阅读全文
摘要:Some Objective-C APIs—like target-action—accept method or property names as parameters, then use those names to dynamically call or access the methods
阅读全文
摘要:scalaz功能基本上由以下三部分组成: 1、新的数据类型,如:Validation, NonEmptyList ... 2、标准scala类型的延伸类型,如:OptionOps, ListOps ... 3、通过typeclass的随意多态(ad-hoc polymorphism)编程模式实现的大
阅读全文
摘要:复用的基础是组件化与标准化。 插座与插头;发动机的可替换部件。
阅读全文
摘要:Overview 本章主要介绍高级条件语句中的 switch 语句以及其增强版的模式匹配。 Java 篇 Switch 特点 Java 中 switch 语句功能类似 if,但是 switch 主要用在多条件分支上。 switch 语句由 case 分支和 default 组成,case 分支用于检
阅读全文
摘要:函数式编程的类型系统:typeclass Typeclass是带有关联构造类型的抽象接口,抽象接口的行为用于约束构造类型。 构造类型实现了抽象接口的行为约束,就称这个实现为这个构造类型的函子。 要素:1、关联的构造类型;2、建立在这个构造类型上的的约束。 3、构造类型的关联类型的概念与行为,及与构造
阅读全文
摘要:类型构造是抽象类型或高阶类型实例化的过程; 类型构造器是任意输入一个或几个已有类型,能够生成新类型的类型; https://www.cnblogs.com/feng9exe/p/9925027.html Type constructors Essentially what HKT gives us
阅读全文