标签: stackless

无堆语言如何工作?

我听说过无堆语言.但是,我不知道如何实现这样的语言.谁能解释一下?

stack language-design stackless

57
推荐指数
5
解决办法
9262
查看次数

使用C实现其他语言是否以任何方式限制了他们的设计?

似乎在过去20年中出现的大多数新编程语言都是用C语言编写的.这完全有道理,因为C可以看作是一种可移植的汇编语言.但我很好奇的是,这是否以任何方式限制了语言的设计.是什么促使我的问题是考虑如何在Python中直接使用C堆栈来调用函数.显然,编程语言设计师可以用他们想要的任何语言做任何他们想做的事情,但在我看来,你选择编写新语言的语言会让你处于某种心态,并给你一些难以忽视的捷径.这些语言的其他特征是否来自于用该语言编写(好的还是坏的)?

c compiler-construction programming-languages stackless

22
推荐指数
3
解决办法
717
查看次数

是否有无堆栈或无堆的C++实现?

C++标准没有提到有关堆栈或堆的任何内容,它们是特定于实现的,这是事实.

即使它们不是C++标准的一部分,我们最终仍然使用它们,以至于它们就像语言本身的一部分一样,必须考虑到内存或性能目的.

因此我的问题是C++的实现不使用堆栈和堆?

c++ heap standards stack stackless

19
推荐指数
3
解决办法
2436
查看次数

编程语言无堆栈意味着什么?

根据这个答案

/sf/ask/38636531/#671296

所有这些编程语言都是无堆栈的

  • 无堆叠的Python
  • PyPy
  • 口齿不清
  • 方案
  • TCL
  • LUA
  • 鹦鹉VM

它们无堆叠意味着什么?这是否意味着他们不使用调用堆栈?如果他们不使用调用堆栈,他们使用什么?

stackless

15
推荐指数
2
解决办法
4499
查看次数

Haskell实现没有堆栈?

来自无堆栈语言如何工作?

Haskell (as commonly implemented) does not have a call stack; 
evaluation is based on graph reduction.
Run Code Online (Sandbox Code Playgroud)

真?这很有意思,因为虽然我自己从未体验过它,但我已经读过,如果你不使用折叠函数的严格版本然后强制评估无限折叠,你会得到堆栈溢出.当然,这表明存在堆栈.任何人都可以澄清吗?

continuations stack haskell stackless graph-reduction

10
推荐指数
1
解决办法
693
查看次数

阻塞通道与异步消息传递

我注意到了两种"消息传递"的方法.一个我见过Erlang使用,另一个来自Stackless Python.根据我的理解,这里的区别

Erlang样式 - 消息被发送并排队到接收进程的邮箱中.从那里它们以FIFO为基础被移除.一旦第一个进程发送消息,它就可以继续.

Python样式 - 进程A队列最多发送到进程B.B当前正在执行其他一些操作,因此A被冻结,直到B准备好接收.一旦B打开读取通道,A发送数据,然后它们都继续.

现在我看到Erlang方法的优点是你没有任何被阻止的进程.如果B永远无法接收,A仍然可以继续.但是我注意到在我编写的一些程序中,由于消息的流入量大于流出量,因此Erlang消息框可能会充满数百(或数千)个消息.

现在我还没有用任何框架/语言编写大型程序,所以我想知道你的经历是这样的,如果这是我应该担心的事情.

是的,我知道这是抽象的,但我也在寻找相当抽象的答案.

python erlang stackless actor python-stackless

9
推荐指数
1
解决办法
1107
查看次数

哪种编程语言支持热代码交换和/或沙盒?

我想写一个基于网络的MMO游戏,允许用户编写AI并将其作为游戏的一部分运行.我计划将Html5用于图形,并希望它是基于网络的,因此可以从智能手机访问它.我需要找到一种支持沙盒,并发,热代码交换和大型库的编程语言,以使事情变得更容易.

这时候我的研究出现了Erlang,Stackless Python和Lua.任何帮助表示赞赏.

erlang lua sandbox stackless python-stackless

8
推荐指数
2
解决办法
2221
查看次数

设计mmo的好python库?基于演员的设计

我试图用python设计一个mmo游戏......

我已经评估了stackless,因为它不是一般的python而且它是一个fork,我不想使用它

我试图在pysage candygram dramatis和parley之间做出选择

任何人尝试这些库中的任何一个?

非常感谢您的回复

python mmo stackless python-stackless

8
推荐指数
1
解决办法
3654
查看次数

无堆栈VM实现会出现哪些C集成问题?

无堆栈VM我指的是在堆上维护自己的堆栈而不是使用系统"C-stack"的实现.这有很多优点,如continuation和serializable状态,但在C-bindings方面也有一些缺点,特别是对于C-VM-C类型的回调(或VM-C-VM).

问题是这些缺点到底是什么?有人能举一个真实问题的好例子吗?

c binding stackless vm-implementation

7
推荐指数
1
解决办法
705
查看次数

使用Python Tools for Visual Studio进行无堆栈Python开发

用于Visual Studio BetaPython工具(包括对CPython的支持)是否允许您使用Stackless Python进行开发?

如果是这样,您是否可以扩展您的答案以包括设置无Stackless Python环境所需的任何步骤,而不是在现有的VS2010安装上安装PTVS?

python cpython stackless python-stackless ptvs

5
推荐指数
1
解决办法
458
查看次数

Stackless Scala With Free Monads,完整的例子

以下代码改编自论文(RO Bjarnason,Stackless Scala With Free Monads).

本文的标题总体上指出了所提出的数据结构的目的 - 即在常量堆栈空间中提供递归处理,并让用户以清晰的方式表达递归.

具体来说,我的目标是建立一个monadic结构,在升序时基于恒定堆栈空间中的简单模式匹配,提供不可变树对(二叉树)或列表(n-ary-tree)的结构重写.

sealed trait Free[S[+_], +A]{
  private case class FlatMap[S[+_], A, +B](
    a: Free[S, A],
    f: A => Free[S, B]
  ) extends Free[S, B]

  def map[B](f: A => B): Free[S, B] = this.flatMap((a:A) => Done[S, B](f(a))) 

  def flatMap[B](f: A => Free[S, B]): Free[S, B] = this match { 
    case FlatMap(a, g) => FlatMap(a, (x: Any) => g(x).flatMap(f))
    case x => FlatMap(x, f)
  } 

  @tailrec
  final def resume(implicit S: Functor[S]): Either[S[Free[S, A]], A] …
Run Code Online (Sandbox Code Playgroud)

monads scala stackless free-monad

4
推荐指数
1
解决办法
877
查看次数

4
推荐指数
1
解决办法
1699
查看次数

请解释套接字缓冲区

我试图找到关于套接字编程的例子并且发现了这个脚本:http: //stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py

通过这个脚本阅读我发现这一行:listenSocket.listen(5)

据我所知 - 它从缓冲区读取5个字节,然后用它做东西......

但如果另一端发送超过5个字节会发生什么?

在该脚本的另一个位置,它根据4个命令检查输入,并查看字符串中是否有\ r \n.不要像"look"加上\ r \n这样的命令弥补超过5个字节?

艾伦

python sockets stackless python-stackless

1
推荐指数
1
解决办法
973
查看次数