标签: programming-languages

Lua作为嵌入式语言的替代品?

我正在研究在DSP上运行Linux的嵌入式系统.现在我们想让它的一些部分可编写脚本,我们正在寻找一种很好的可嵌入脚本语言.这些脚本应该与我们现有的C++代码库很好地集成,小而快.

我知道Lua是这类问题的行业选择.我们可能会选择Lua,因为它是经过验证的,并且被证明是稳定的等等.然而,作为一种编程语言,它有一些相当古怪的角落.

那么,可嵌入语言有哪些替代方案?

编辑:

这是大约一年之后.

我们实际上在我们的嵌入式系统上使用了Lua,它表现非常出色.随着时间的推移,我们为项目的越来越多的部分添加了越来越多的脚本支持,这确实有助于实现它.

性能非常出色,真的.即使是相当复杂的操作,涉及搜索长数组或奇特的字符串操作也表现得非常好.我们基本上从未遇到过与Lua相关的性能问题.

与C函数的接口非常简单,并且工作得非常好.这使我们可以轻松地扩展脚本系统.

最后,我们对Lua的灵活性感到震惊.我们的Lua解释器必须在具有非标准内存分配器的系统上运行,并且不支持双数据类型.在一个头文件中有两个记录良好的位置我们必须修改以使Lua在该系统上工作.它非常适合嵌入!

embedded scripting lua programming-languages

53
推荐指数
4
解决办法
3万
查看次数

Scala中def foo = {}和def foo()= {}之间有什么区别?

给定以下用于在Scala中定义函数的构造,您能解释一下它们之间的区别,以及它们的含义是什么?

def foo = {}
Run Code Online (Sandbox Code Playgroud)

def foo() = {}
Run Code Online (Sandbox Code Playgroud)

更新

感谢您的快速回复.这些都很棒.对我来说唯一的问题是:

如果我省略括号,是否还有办法传递函数?这是我在repl中得到的:

scala> def foo = {}
foo: Unit

scala> def baz() = {}
baz: ()Unit

scala> def test(arg: () => Unit) = { arg }
test: (arg: () => Unit)() => Unit

scala> test(foo)
<console>:10: error: type mismatch;
 found   : Unit
 required: () => Unit
              test(foo)
                   ^

scala> test(baz)
res1: () => Unit = <function0>
Run Code Online (Sandbox Code Playgroud)

更新2012-09-14

以下是我注意到的一些类似问题:

  1. 功能与括号和没有的区别
  2. 没有参数的Scala方法

jvm programming-languages functional-programming scala jvm-languages

53
推荐指数
3
解决办法
5981
查看次数

PHP之上的新语言?

我是一名PHP开发人员.我喜欢PHP!如果你知道如何使用它,这是一个非常好的语言,但我知道它有时会让非常糟糕的设计.

它让我想起了具有良好部件和不良部件的JavaScript.一个特别的项目CoffeeScript试图只关注好的部分,迫使你编写好的代码.

我在想是否可以用PHP完成类似的事情...一种新的语法,只能编译成好的PHP代码,并且可以使用PHP 5.3获得所有新的和令人兴奋的东西.

所以,领先一些人,我会问:如果你可以只使用Ruby或Python或其他东西,为什么要在PHP之上创建一种新语言?

  • PHP易于部署在任何地方
  • 语言本身有很多好的功能和想法
  • 有许多用PHP编写的好库
  • ...

所以,我真正的问题是......

  • 这是一个愚蠢的想法吗?为什么会这样?你认为CoffeeScript是愚蠢的吗?
  • 有人如何开始在另一个上面创建一种新语言?我对此一无所知,但我想学习.从哪儿开始?

php programming-languages language-design

52
推荐指数
2
解决办法
2838
查看次数

"关键字"和"保留字"有什么区别?

关键字保留字之间有什么区别?

例如,在C++中的概念提议中,可以阅读以下语句:

该提案引入了五个新关键词:概念,概念图,其中,公理和延迟检查.所有这些关键字也将是保留字.

language-agnostic syntax programming-languages reserved-words keyword

51
推荐指数
4
解决办法
5万
查看次数

托管c ++和c ++之间的区别

主题标题实际上是我的问题.第二个问题是:我什么时候使用这两个?

c++ programming-languages managed-c++ visual-c++

50
推荐指数
2
解决办法
5万
查看次数

你可以在Python中的核心类型上修补补丁方法吗?

Ruby可以向Number类和其他核心类型添加方法以获得如下效果:

1.should_equal(1)
Run Code Online (Sandbox Code Playgroud)

但似乎Python无法做到这一点.这是真的?如果是这样,为什么?是否与类型无法修改的事实有关?

更新:我不想谈论猴子修补的不同定义,而是只关注上面的例子.我已经得出结论,由于你们中的一些人已经回答,所以无法做到.但我想更详细地解释为什么不能这样做,也许如果Python中有什么功能可以允许这样做.

回答你们中的一些人:我可能想要这样做的原因只是美学/可读性.

 item.price.should_equal(19.99)
Run Code Online (Sandbox Code Playgroud)

这更像是英语,并清楚地表明哪个是测试值,哪个是预期值,如下所示:

should_equal(item.price, 19.99)
Run Code Online (Sandbox Code Playgroud)

这个概念就是Rspec和其他一些Ruby框架所基于的.

ruby python programming-languages fluent-interface monkeypatching

49
推荐指数
6
解决办法
2万
查看次数

Windows资源管理器使用的排序顺序中的第一个字符是什么?

例如,在Windows文件夹中,如果我们创建一些文件并将其命名为1.html,2.txt,3.txt,photo.jpg,zen.png,则顺序将保持不变.但是如果我们创建另一个名为_file.doc的文件,它将被放在顶部.(考虑到我们按名称降序排序)

同样,将被视为第一个的角色是什么,这样如果我使用该角色,它会将文件放在层次结构的顶部?

windows algorithm programming-languages char special-characters

49
推荐指数
6
解决办法
9万
查看次数

"if"语句是否被视为一种方法?

我的同行之间讨论了"if"语句是否被视为一种方法的有趣讨论?尽管"if"附加了单词statement,但它仍然表现得类似于简单的非返回值方法.

例如:

if(myValue) //myValue is the parameter passed in
{
    //Execute
}
Run Code Online (Sandbox Code Playgroud)

同样,方法可以执行相同的操作:

public void MyMethod(myValue)
{
    switch(myValue)
    {
        case true:
            //Logic
            break;
        case false:
            //Logic
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在编程语言中调用(考虑)"if"语句是一种简单的预定义方法是否准确?

language-agnostic programming-languages if-statement conditional-statements

49
推荐指数
4
解决办法
4471
查看次数

编程语言的表现力是什么意思?

当人们想要强调一种语言比另一种语言更好时,我会看到很多"表达能力"这个词.但我并不确切地看出它们的含义.

  • 这是冗长/简洁吗?我的意思是,如果一种语言可以写下比另一种语言更短的内容,那是否意味着表现力?请参阅我的另一个问题 - 关于代码密度作为编程语言能力度量的文章
  • 这是语言的力量吗?Paul Graham说,一种语言比另一种语言更强大,因为一种语言可以做到另一种语言无法做到的事情(例如,LISP可以用宏执行其他语言不能做的事情).
  • 这只是让生活更轻松的事吗?正则表达式可以是其中一个示例.
  • 它是解决同一问题的另一种方式:像SQL一样解决搜索问题?

您如何看待编程语言的表现力?你能用一些代码表现出表现力吗?

与表现力和DSL有什么关系?人们想出DSL来获得表现力吗?

language-agnostic programming-languages

48
推荐指数
5
解决办法
7621
查看次数

什么静态类型的语言类似于Python?

Python是我目前所知道的最好的语言,但是由于自动完成,静态类型是一个很大的优势(尽管对动态语言的支持有限,但与静态支持相比,它没什么).我很好奇是否有任何语言尝试将Python的好处添加到静态类型语言中.特别是我对具有以下功能的语言感兴趣:

  • 语法支持:例如字典,数组理解
  • 函数:关键字参数,闭包,元组/多个返回值
  • 运行时修改/创建类
  • 避免在任何地方指定类(在Python中这是由于鸭子类型,尽管类型推断在静态类型语言中会更好)
  • 元编程支持:这是通过反射,注释和元类在Python中实现的

是否存在具有大量这些功能的静态类型语言?

python programming-languages

46
推荐指数
5
解决办法
9926
查看次数