小编Alo*_*ard的帖子

C--与LLVM相比如何?

在了解了LLVM如何工作之后,我对如何生成可移植的低级代码以及如何构建这个"东西"模块感到非常兴奋.

但我今天发现C--的存在似乎与LLVM共享一些概念.

所以我正在寻找一些信息,帮助我理解这两个项目之间的主要区别......以及为什么两者都存在.

对我来说,LLVM看起来有点像瑞士军刀用于编译器基础设施,而C--看起来远不如先进.

c compiler-construction code-generation llvm c-minus-minus

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

限制Scala 2.9中的类构造函数可见性

问候,

如何使Foo构造函数仅对此包(单元测试+伴随对象)可见?

我不希望能够在这2个文件之外实例化Foo ...

Foo.scala

package project.foo

class Foo(val value: String)

object Foo {
  def generate: Foo = new Foo("test")
}
Run Code Online (Sandbox Code Playgroud)

FooSpec.scala

package project.foo

import org.spec2.mutable._

class FooSpec extends Specification {
  "Foo" should {
    "be constructed with a string" {
      val foo = new Foo("test")
      foo.value must be "test"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Scala 2.9

scala

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

斯卡拉可以被视为"抽象倒置"吗?

问候,

这是一个具有挑衅性的问题,旨在公开讨论如何在开发者社区中看到抽象反转.我很想知道你的想法.

首先,这里引用维基百科给出的抽象反转例子:http: //en.wikipedia.org/wiki/Abstraction_inversion

在诸如Java和C++之类的面向对象语言中创建表示函数的对象是很麻烦的,其中函数不是第一类对象.在C++中,可以通过重载()运算符来使对象"可调用",但是仍然经常需要实现一个新类,例如STL中的Functors.

对我来说,函数是Scala中的一等公民,但是当我们使用Scala生成Java字节码时,Scala会在Java上创建特定的类'以使函数式编程成为可能...... 我们可以将其视为抽象反转吗?

同样可以应用于Clojure或JVM的任何功能语言......甚至是Apache Collections,例如:

http://commons.apache.org/collections/apidocs/org/apache/commons/collections/Closure.html


顺便说一句,我不相信维基百科文章的客观性.例如,当谈到微内核中可能的抽象反转时,文章说"一个观点主体认为微内核设计是一个抽象反转",但在OOP中没有这样的函数类型声明.

oop abstraction programming-languages functional-programming scala

3
推荐指数
2
解决办法
399
查看次数

当从类型函数"推导出"其中一个实例时,如何使用多个"数据"实例?

我正在尝试使以下代码工作(好吧,首先编译!):

module Orexio.Radix where

import Data.Data
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Typeable
import Text.JSON.Generic

class Resource a where
  type Representation a :: *
  identifier :: Resource a => Identifier a

class Endpoint a where
  call :: Resource a => a -> Representation a

data Identifier a = Identifier [String] deriving (Show)

data Binding a = Binding (JSValue -> Either String JSValue)

bind :: (Data a, Resource a, Endpoint a, Data (Representation a)) => Binding a
bind …
Run Code Online (Sandbox Code Playgroud)

serialization json haskell

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