如何看待文章 《The two factions of C++》?
- [ ] c++的两个派系 #share
如何看待文章 《The two factions of C++》?
一门语言没有ad hoc polymorphism,那应该怎么解决呢?
如何设计解释器的文件结构使之更优雅?
Jvm规范中的LDC_W指令问题?
专攻哪门编程语言好?
IDE的自动提示是如何实现的?
为啥 Erlang 没有像 Go、Scala 语言那样崛起?
为什 Ada 语言没有普及开?
看一些 Type Inference 的论文感觉吃力,需要补哪些知识?
编程语言中, type, typed, typing 有什么区别?
什么样的类型系统才是 Unsound 的?
Daniel P. Friedman的新书The Little Typer怎么样?
如何有步骤地实现一个解释器?如果采用低级语言,如 C 之类的语言来实现像 Lisp 这样的语言,需要什么知识和工具?
对大量使用 immutable data structure 的语言,其 VM 和 GC 会有何特点?
SystemF 对应二阶逻辑,Fω 对应高阶逻辑,这个阶是怎么算得?
[PLT]和[数理逻辑、类型论、抽象代数及范畴论]的关系是什么?
Cut elimination对于STLC以及其他type system的意义?
从语言设计的角度来看, Pascal 是一门优秀的语言吗?
和 C++ 相比,用 Fortran 编程是怎样的体验?
Scheme 适合用来做什么?
Racket有contract为什么还要加一个type system?
如何理解编程语言中「操作符」(operator)的概念?
语言设计中运算符优先级如何确定?
学习程序语言设计与类型系统如何找到工作?
上下文有关(注意,不是无关)文法与自然语言的区别在哪里?
为什么编程语言都是上下文无关文法,不能采用上下文有关文法吗?
有哪些讲编程范式的好书或好文?
读 CS PhD 之前没有工业界经历真的没关系吗?
在计算机科学中,整体来说,PL 更接近 Theory 还是 System?
现今编程语言的理想类型系统是怎样的?
为什么大部分编程语言不支持宏?
scheme中letrec的语义要如何转化以及实现?
编程语言发展史上有哪些趣事?
(list 1 2 3)为什么不可以是(cons (cons (cons nil 1) 2) 3)?
是否可以说 Contract 和 Type Inference 模糊了静态类型和动态类型的界限?
First class higher order function 是编程语言发展中的弯路吗?
如何评价 MSR 的 Lean Theorem Prover?
如何看待 Lean 和 Agda 逐渐成为年轻人的第一个 prover?
函数式编程是否适用于超大型项目?
(sicp 计算机程序的构造和解释) 如何理解无限长的流?
LISP可以做什么?
如何评价 The Little Schemer 系列的文风?
为什么有些程序语言的类型推断可以推断函数参数,有些不会,哪种更好?
现代语言的closure是如何处理的?
OCaml语言有什么先进的地方?
rust是不是一个no gc 的 haskell?
如何评价The Development of Chez Scheme ?
如何证明一个语言的类型系统是sound的?
类型应该是一等公民吗?
Lazy computation 在实际应用中有什么妙用?
lambda演算求值顺序的问题?
如何评价PLT Redex?
CEK machine里的C、E、K分别对应了“真实”计算机里的哪些构造?
有人说动态语言没有类型系统,这个认识是对是错?如果是错的,应该从什么角度进行回应呢?
haskell中的callcc有什么用?
为什么C/C++等少数编程语言要区分左右值?
如何看待编程语言越来越大的趋势?
如何写一个简单的编译器?
free一块修改过的malloc指针会发生什么?
Call By Need语义下如何做Partial Evaluation?
编程语言为什么有变量类型这个概念?
类型系统里的概念 Soundness 和形式系统中的概念一致性(Consistency)有什么异同?
normalization property、type safety与soundness有什么联系?
有没有关于编程语言的大一统理论?
Lisp的精髓是什么?
设计一门编程语言的话,你认为最重要的一定要有的特性会是哪些?
想看懂编程语言理论书籍需要什么前置的知识?
为什么我们需要了解编程的历史?
为什么 Go 语言如此不受待见?
函数式编程的函数是如何实现的?
什么是「continuation」?
系统地学习PLT需要读哪些经典书籍?
如何自己创建一种编程语言?
如何实现 Call / CC 或者阴阳谜题(Yin Yang Puzzle)?
scheme中的continuation实现原理是什么?
使用yield可以做哪些很酷的事情?
Y Combinator 的函数签名该如何表达?
Racket 这个语言的潜力怎么样?有什么生产环境使用的例子吗?
编程语言,编译,软件工程方面,在知乎上有哪些可以关注的researcher包括PhD student?
如何评价王垠的《Sum types and union types》?
Haskell等语言中的模式匹配在C++中如何实现?
编程语言需要哪些机制才能支持模式匹配(pattern match)?
为什么说racket中的syntax object是卫生宏的基础础?
用racket实现R或Python时如何处理赋值?特别是条件语句和循环语句中的赋值,还有函数对外部变量的赋值?
图灵奖得主、《龙书》作者万字长文讲解:什么是「抽象」?
编程语言理论
可以给类型系统设计解释器吗?
为什么滑铁卢大学让大一学生从不实用的racket语言学起而不是直接上手C语言?
宏的“理论极限”是什么?
函数式语言能否内置一个 caching 类似的功能用于函数 Memoization, 为什么?
怎么评价这份PLT Learning By Doing Guide 攻略?
Golang vs Rust vs Dlang 哪个更有前途,哪位大牛这 3 门语言都用过?
Prolog 这类逻辑式编程语言为什么没有得到广泛应用?
程序语言中的取余是如何实现的?
CPS变换可以用来将普通递归转变为尾递归??
完成一个Scheme解释器需要哪些知识?实现各功能都有哪些东西需要理解?
《计算机程序的构造和解释(SICP)》讨论的核心问题是什么?
编程语言的类型系统为何如此重要?
读完sicp后应该做些什么?
图灵机与λ演算是等价的,为什么前者成为了普遍接受的计算机或计算理论的模型?
未来什么编程语言和开发技术会比较吃香呢?
如何评价 Clean Code 作者对 Swift 与 Kotlin 的看法?
JVM的规范中允许编程语言语义中创建闭包(closure)吗?
Lambda 表达式、Block、闭包与匿名函数之间有什么区别?和 λ 演算有什么关系?
Python 中的 lambda 和「真正的」lambda 有什么区别?
如何理解抽象解释(abstract interpretation)?
Java为什么不自举?
一门语言要做到何种地步,才能说是「自举」?
ruby语言有什么样的美学特点?
如何评价王垠的新文章,《给Java说句公道话》?
如何评价王垠新博文《如何掌握所有的程序语言》?
初学者该从哪里入门学习写 tokenizer 和 grammar analyzer ?
编译技术中各环节比重如何?
知乎的技术架构是什么样的?
为什么 Elm 类似语言很稀罕?未来怎样?
函数式响应型编程(Functional Reactive Programming)会在什么问题上有优势?
如何评价 Webkit 推出的并发 JavaScript 提案?
JavaScript一个疑问,[ ] (空数组)== true ,具体如下,请问这是为何?
getter 和 setter 方法有什么意义?
C语言或C++语言如何实现尾调用消除?
从编程语言设计的角度,如何评价SQL语言?
程序语言设计界是否开始认为 Subtyping 是 Anti-pattern?
设计、更新一门通用编程语言的一般流程是怎样的?
类型(Types)和集合(Sets)二者之间有何区别?
高级语言为什么要添加数据类型?
Call by name 的语言能模拟 call by value 吗?
有人质疑PL研究,比如program slicing的价值。如何解释?
OCaml 类型系统的缺陷有哪些?
PLT零基础的人,要看懂王垠和彭飞在《王垠,请别再欺负我们读书少》里讨论的内容,需要掌握哪些知识?
如何看待Spring 5引入函数式编程思想以及Reactor?
如何理解程序设计语言中的泛型?
为什么声明性语言往往适合于并行执行,命令代码很难在多个内核和多个机器之间并行化?
Edward Kmett 的这个讲座在讲什么?
子类型(subtyping)是不是错误(ill-defined)的东西?
subtyping和inheritance的区别是什么?
Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同?
如何评价Liquid Types?
程序语言中的类型系统怎么理解,它有哪些要素?如何由它演化出一门编程语言的?
Haskell 的带界量化多态和 Java/C# 的接口动态委派,哪一个更有利于优化?灵活性更好?
如何评价Elm 编程语言?
如何理解笛卡尔闭范畴以及它与函数式编程的关系?
Haskell 这段代码该如何理解?
如何评价 Racket 这门编程语言?
Scheme语言的优势?
CPS 变换有什么作用?
想要理解函数式编程的思想,最好用哪种函数式编程语言入门?
JavaScript 的设计优点是什么?
如何系统的学习动态语言的类型推导,类型系统等知识?
为什么说「动态类型一时爽,代码重构火葬场」?
句柄是什么?
Golang 的 goroutine 是如何实现的?
怎样理解 Continuation-passing style?
如何评价 C++11 的右值引用(Rvalue reference)特性?
动态作用域和词法域的区别是什么?
为了看懂王垠Pysonar,我应该掌握哪些知识?
程序设计语言理论(PLT)领域里有哪些经典的教材?
an expression is a syntactic entity in a programming language that may be evaluated to determine its value.
a statement is a syntactic unit of an imperative programming language that expresses some action to be carried out.
我看很多网上的文章都把表达式和语句的区别,说成是表达式有值,而语句不总有,我个人不同意这个观点。我认为,纠结于这两个概念的区别和联系没有意义,思维方式的重点应该是在于观察视角和维度的区别。表达式是从数学、计算的视角来看待问题。它关注的是算法的效率(空间和时间复杂度)。而语句是从计算机执行的视角来看问题,这个视角关注的是代码的逻辑和架构。(从这个视角来看,表达式也是语句)我们写代码的时候,需要在这两个视角之间不断的切换,而不是拘泥于去区分这两个概念。
表达式和语句的区别是什么?
纠结于表达式和语句两个概念的区别和联系,有什么意义?
思维方式的重点应该是在于【观察视角】和【维度】的区别。(观察视角、维度)
1)表达式是从数学、计算的视角来看待问题。 它关注的是算法的效率?(空间和时间复杂度)
2)语句是从计算机执行的视角来看问题,这个视角关注的是代码的逻辑和架构。
语句和表达式的区别在于,语句不返回结果,执行语句只是为了产生副作用,而表达式总是返回结果,而通常没有副作用。
如果一种计算机语言不会影响你对编程的看法,它就不值得学习。
Alan J. Perlis,第一届图灵奖得主
在学习 haskell 比学 golang 更有乐趣,
类似于演戏时用到的脚本,script 其实就是一系列指令——演员看了指令就知道自己该表演什么,说什么台词;计算机看了指令就知道自己该做什么事情。
脚本语言就是:已经有了一系列已编译的程序作为演员,你在特定舞台上设计脚本让演员按你预预想的方式来完成一项工作。类似于使用dos命令,创建文件夹、修改文件夹名、创建文件这些功能就是演员,用批处理的脚本让这些演员完成文件的归类整理就是脚本语言的工作模式。而这样来看IFTTT就是互联网的脚本语言,并且层级还很高。