我已经习惯了用于基本数据类型的 primitive 这个词:boolean,integer,float等。但是,在William Stallings的操作系统:内部和设计原则中,他在操作系统算法的上下文中使用它来引用一些可调用的(函数或指令);例如,他说send
和receive
是一对基元,“这是进程参与消息传递所需的最小操作集”(7 th 版本,233)。我是否正确地将其理解为“基本构建块”(就像引用数据类型时一样),在算法构造中被认为是理所当然的操作?这是一种广泛使用,还是Stallings特有的东西?鉴于此用法,定义原语的最佳方法是什么?
答案 0 :(得分:4)
对我来说,它意味着无法分解的东西(人们在某种意义上有时也使用 atomic 字,但 atomic 通常也用于解释并发性或具有不同含义的并行性。)
例如,在Unix(或Linux)上,应用程序看到的system calls是原始的或原子的,它们是否发生(有时,它们被中断并给出EINTR
或{ {1}}错误)。
在翻译中,甚至在语言的正式规范中,原语是那些你无法定义的操作,以及解释器特别处理的操作。通常,ERESTART
是Lisp方言的原始操作。