avatar
文章
129
标签
29
分类
4

首页
归档
分类
关于
阿日哥的向量空间
搜索
首页
归档
分类
关于

阿日哥的向量空间

Miscellaneous
置顶|发表于2023-02-16|计算机|杂项
Here are some useful courses and learning materials. Parallel The Art of Multiprocessor Programming - Maurice Herlihy C++ Concurrency in Action Concurrency with Modern C++ An Introduction to Parallel Programming (Pacheco, Peter etc.) HPC MIT 6.172 Performance Engineering of Software Systems, Fall 2018 UCB CS267 Spring 2023 - Application of Parallel Computers CS121-Parallel Computing Stanford CS149 Fall 2023 PARALLEL COMPUTING 15-418/15-618: Parallel Computer Architecture and Programming Machine ...
Notes on PL 16 - De Bruijn, Combinators and Encodings
发表于2025-02-14|计算机|Programming Language
de Bruijn Notation One way to avoid the tricky interaction between free and bound names in the substitution operator is to pick a representation for expressions that doesn’t have any names at all! Intuitively, we can think of a bound variable is just a pointer to the that binds it. For example, in , the points to the first and the points to the second . So-called de Bruijn notation uses this idea as the representation for expressions. Here is the grammar for expressions in de Bruijn notation: ...
Notes on PL 15 - Fixed-Point Combinators
发表于2025-02-07|计算机|Programming Language
Nontermination Consider the expression , which we will refer to as for brevity. Let’s try evaluating : Evaluating never reaches a value! It is an infinite loop! What happens if we use as an actual argument to a function? Consider this program: If we use CBV semantics to evaluate the program, we must reduce to a value before we can apply the function. But never evaluates to a value, so we can never apply the function. Thus, under CBV semantics, this program does not terminate. If we use CB ...
Notes on PL 14 - Lambda Calculus Encodings
发表于2025-01-31|计算机|Programming Language
Lambda Calculus Encodings Booleans The pure -calculus contains only functions as values. It is not exactly easy to write large or interesting programs in the pure -calculus. We can however encode objects, such as booleans, and integers. Let us start by encoding constants and operators for booleans. That is, we want to define functions TRUE, FALSE, AND, NOT, IF, and other operators that behave as expected. For example: Let’s start by defining TRUE and FALSE: Thus, both TRUE and FALSE are functi ...
Notes on PL 13 - Lambda Calculus Continued
发表于2025-01-24|计算机|Programming Language
Lambda Calculus Evaluation There are many different evaluation strategies for the -calculus. The most permissive is full reduction, which allows any redex--i.e., any expression of the form --to step to at any time. It is defined formally by the following small-step operational semantics rules: The call by value (CBV) strategy enforces a more restrictive strategy: it only allows an application to reduce after its argument has been reduced to a value (i.e., a -abstraction) and does not allow ev ...
Notes on PL 12 - Lambda Calculus
发表于2025-01-17|计算机|Programming Language
Lambda calculus (or -calculus) was introduced by Alonzo Church and Stephen Cole Kleene in the 1930s to describe functions in an unambiguous and compact manner. Many real languages are based on the lambda calculus, including Lisp, Scheme, Haskell, and ML. A key characteristic of these languages is that functions are values, just like integers and booleans are values: functions can be used as arguments to functions, and can be returned from functions. The name “lambda calculus” comes from the use ...
Notes on PL 11 - Relative Completeness
发表于2025-01-10|计算机|Programming Language
Relative Completeness Previously, we discussed the issue of completeness—i.e., whether it is possible to derive every valid partial correctness specification using the axioms and rules of Hoare logic. Unfortunately, if treated as a pure deductive system, Hoare logic cannot be complete. To see why, consider the following partial correctness specifications: The first is valid if and only if the assertion is valid while the second is valid if and only if the command does not halt. It turns out t ...
Notes on PL 10 - Hoare Logic Decorated Programs
发表于2025-01-03|计算机|Programming Language
Decorated Programs Doing a complete proof in Hoare Logic can feel overly verbose. The “core” of a proof consists of the preconditions and postconditions surrounding every command; with those, it’s usually possible to infer the complete shape of the proof tree. Decorating programs is a way to informally write down a Hoare logic proof of correctness. The idea is to insert assertion decorations between every “line” of the program. Using this informal evidence, you can reconstruct the full formal pr ...
Notes on PL 09 - Hoare Logic
发表于2024-12-27|计算机|Programming Language
Hoare Logic How do we show that a partial correctness statement с holds? We know that с is valid if it holds for all stores and interpretations: с. Furthermore, showing that с requires reasoning about the execution of command (that is, ), as indicated by the definition of validity. It turns out that there is an elegant way of deriving valid partial correctness statements, without having to reason about stores, interpretations, and the execution of . We can use a set of inference rules and axiom ...
Notes on PL 08 - Axiomatic Semantics
发表于2024-12-20|计算机|Programming Language
Introduction to Axiomatic Semantics Now we turn to the third and final main style of semantics, axiomatic semantics. The idea in axiomatic semantics is to define meaning in terms of logical specifications that programs satisfy. This is in contrast to operational models (which show how programs execute) and denotational models (which show what programs compute). This approach to reasoning about programs and expressing program semantics was originally proposed by Floyd and Hoare and was developed ...
12…13
avatar
Thomas
一个人的命运,当然要靠自我奋斗,但是也要考虑到历史的行程。
文章
129
标签
29
分类
4
Homepage
最新文章
Notes on PL 16 - De Bruijn, Combinators and Encodings2025-02-14
Notes on PL 15 - Fixed-Point Combinators2025-02-07
Notes on PL 14 - Lambda Calculus Encodings2025-01-31
Notes on PL 13 - Lambda Calculus Continued2025-01-24
Notes on PL 12 - Lambda Calculus2025-01-17
标签
CMake 杂项 数据结构与算法 计算机组成原理 Linux 深度学习 大数据 Programming Language 机器学习系统 操作系统 诗词 机器学习 计算机网路 LLDB 这就是生活 软件工程 编译原理 spring c++ LeetCode 高等数学 组合数学 java LLVM 软件开发 剑指Offer Hadoop 自然语言处理 AcWing算法基础
网站资讯
文章数目 :
129
本站总字数 :
191.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
访客地图
©2019 - 2025 By Thomas
搜索
数据库加载中