"排放"在一般的计算机科学术语中意味着什么?

JDS*_*JDS 14 emit

我只是偶然发现了一个看似普遍知道的compsci关键字"emit".但我在一般的计算机科学术语中找不到任何明确的定义,也没有在任何特定的编程语言中找到"emit()"函数或关键字的具体定义.

我在这里找到它,阅读MapReduce:

https://en.wikipedia.org/wiki/MapReduce

我的其他搜索的上下文显示它与信令和/或事件有关.但似乎只是假设读者会知道"发射"是什么和做什么.例如,这篇关于MapReduce模式的文章:

https://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/

没有提到"发射"实际上在做什么,只有调用它.它必须与其他形式的返回数据不同,例如"return"或简单地"printf"或等效,否则对"emit"的调用将是对"return"的调用.

进一步搜索,我发现很多次在MapReduce的上下文中出现了一些伪代码形式的"emit".并在Node.js. 在Qt.但那是关于它的.

背景:我是(大多数)自学成才的网络程序员和系统管理员.我确定这个问题在compsci 101(或201?)中有所涉及,但我没有采用这个课程.

Arm*_*man 6

在网络和网络编程中:

当我们调用一个函数时,该函数可能会返回一个值。当我们调用一个函数并且该函数应该将那些结果发送到另一个函数时,我们将不再用户返回。相反,我们使用发出。我们期待的功能发出我们调用的结果给另一个函数。

一个函数可以返回结果并发出事件。


ryu*_*187 5

在学术界构建一个简单的编译器时,我只见过使用generate()。

在分析程序的语法后,您可以标记该程序的内容并发出(推出)汇编指令。(实际上编写的编译器程序甚至包含一个称为“发出”的内部函数,以反映其理论/逻辑方面。)

语法分析完成后,汇编器将采用汇编指令并生成二进制代码(又称机器代码)。

因此,我认为没有通用的CS定义可以发出;但是,我确实知道它用于编写编译器程序的伪代码(有时是实际代码)中。那就是美国的本科计算机科学教育。


Ste*_*ett 5

我可以想到使用它的三种情况:

  • Map/Reduce 函数,其中某些输入值导致 0 个或多个输出值进入 Reduce 函数
  • 分词器,处理文本流,并以不同的时间间隔发出标记
  • 消息系统

我认为共同点是“零个或多个”。A 只return从函数返回一个值,而“emit”是一个函数调用,它可以发生零次或多次。