IBM 研究论文中的未知语法
Unknown syntax in IBM research paper
我正在阅读研究论文高性能动态无锁哈希表
和基于列表的集合(Maged M. Michael),我不明白用于示例的这种伪代码语法。
具体是这些部分:
〈pmark,cur,ptag〉: MarkPtrType;
〈cmark,next,ctag〉: MarkPtrType;
nodeˆ.〈Mark,Next〉←〈0,cur〉;
if CAS(prev,〈0,cur,ptag〉,〈0,node,ptag+1〉)
例如。 (第 5 页,第 3 章)
更新:
ˆ.
似乎是一种 Pascal 符号,用于取消引用指针并访问记录中的变量 ()。
←
箭头似乎是一个 Haskell 类似 的符号 赋值运算符,它将运算结果赋值给一个变量。这有点奇怪,因为这篇论文比 Haskell 早将近十年。这可能是 Haskell 也借用的一些符号。 (https://en.wikibooks.org/wiki/Haskell/do_notation#Translating_the_bind_operator)
〈a, b〉
是向量内积的数学向量符号 (https://mathworld.wolfram.com/InnerProduct.html)
广角括号表示法似乎是一个临时列表表示法或在一行上操作多个变量(感谢@graybeard 指出)。它甚至可能是某种元组。
这就是 〈pmark,cur,ptag〉: MarkPtrType;
在类 C 语言中的样子:
MarkPtrType pmark;
MarkPtrType cur;
MarkPtrType ptag;
// or some list assignment notation
// or a tuple
ˆ.
似乎是一种 Pascal 符号,用于取消引用指针并访问记录中的变量 ()。
←
箭头是一个 APL assignment notation, also similar to the Haskell's do notation 赋值运算符。
我正在阅读研究论文高性能动态无锁哈希表 和基于列表的集合(Maged M. Michael),我不明白用于示例的这种伪代码语法。
具体是这些部分:
〈pmark,cur,ptag〉: MarkPtrType;
〈cmark,next,ctag〉: MarkPtrType;
nodeˆ.〈Mark,Next〉←〈0,cur〉;
if CAS(prev,〈0,cur,ptag〉,〈0,node,ptag+1〉)
例如。 (第 5 页,第 3 章)
更新:
ˆ.
似乎是一种 Pascal 符号,用于取消引用指针并访问记录中的变量 ()。←
箭头似乎是一个 Haskell 类似 的符号 赋值运算符,它将运算结果赋值给一个变量。这有点奇怪,因为这篇论文比 Haskell 早将近十年。这可能是 Haskell 也借用的一些符号。 (https://en.wikibooks.org/wiki/Haskell/do_notation#Translating_the_bind_operator)〈a, b〉
是向量内积的数学向量符号 (https://mathworld.wolfram.com/InnerProduct.html)
广角括号表示法似乎是一个临时列表表示法或在一行上操作多个变量(感谢@graybeard 指出)。它甚至可能是某种元组。
这就是 〈pmark,cur,ptag〉: MarkPtrType;
在类 C 语言中的样子:
MarkPtrType pmark;
MarkPtrType cur;
MarkPtrType ptag;
// or some list assignment notation
// or a tuple
ˆ.
似乎是一种 Pascal 符号,用于取消引用指针并访问记录中的变量 ()。
←
箭头是一个 APL assignment notation, also similar to the Haskell's do notation 赋值运算符。