我偶然发现了一个看似普遍知道的compsci关键字," emit"。但我无法在一般的计算机科学术语中找到任何明确的定义,也没有找到" emit()"的具体定义。任何特定编程语言中的函数或关键字。
我在这里找到它,阅读MapReduce:
https://en.wikipedia.org/wiki/MapReduce
我的其他搜索的上下文显示它与信令和/或事件有关。但似乎只是假设读者会知道"发出"是和做的。例如,本文关于MapReduce模式:
https://highlyscalable.wordpress.com/2012/02/01/mapreduce-patterns/
没有提到"发出"实际上,只有调用它。但它必须与其他形式的返回数据不同,例如" return"或者只是" printf"或等效的,否则调用"发出"会打电话给"返回"。
进一步搜索,我发现了一些伪代码形式的"发出"出现在MapReduce的上下文中。并在Node.js.在Qt。但那是关于它的。
背景:我(大多数)是自学成才的网络程序员和系统管理员。我确定这个问题在compsci 101(或201?)中有所涉及,但我没有采用这个课程。
答案 0 :(得分:4)
在学术界建立一个简单的编译器时,我才见过emit()。
在分析程序的语法时,您会对其内容进行标记,并发出(推出)程序集指令。 (编写的编译器程序实际上甚至包含一个名为emit的内部函数来镜像它的理论/逻辑方面。)
语法分析完成后,汇编程序将获取汇编指令并生成二进制代码(也称为机器代码)。
所以,我不认为 emit 有一般的CS定义;但是,我知道它用于编写编译程序的伪代码(有时是实际代码)。那就是美国本科水平的计算机科学教育。
答案 1 :(得分:4)
在网络和网络编程的背景下:
当我们调用函数时,函数可以返回一个值。 当我们调用一个函数并且该函数应该将这些结果发送到另一个函数时,我们将不再使用返回。相反,我们使用 emit 。我们期望函数通过调用将结果发出到另一个函数。
功能可以返回结果和发出事件。
答案 2 :(得分:2)
我可以想到它使用的三种情况:
我认为共同的话题是"零或更多"。 return
只能从函数中提供一个值,而"则发出"是一个函数调用,可以进行零次或多次。
答案 3 :(得分:0)
在MapReduce编程模型的上下文中,据说映射性质的操作需要输入值并发出结果,这无非是输入的转换。