标签: compiler-as-a-service

您将如何使用编译器即服务进行操作

看到我们可能会在下一个版本中获得这个功能,您认为自己能做什么或者想要使用此功能做些什么?

就个人而言,在代码生成期间(例如在MSBuild任务中),我有时希望能够在项目中查看代码,从而可以选择生成更好的代码(更多代码).

例如,如果我有一个具有部分方法的部分类,其中某个类型的参数被发送,那么在代码生成时我可以使用该信息生成更好的代码.

换句话说,我在编写代码时发布了我的"意图",我可以将代码生成器用于繁重的工作.

partial void InitCommandForStoredProc(ref DbCommand command, string storedProcName);
Run Code Online (Sandbox Code Playgroud)

在部分方法中给出此信息,我可以生成正确的代码.

那么你们都希望能够将Compiler作为一项服务做什么呢?

c# compiler-construction compiler-as-a-service roslyn

27
推荐指数
3
解决办法
3122
查看次数

什么是"C#编译器作为服务"的状态

回到2008年的PDC,在Anders Hejlsberg的C#期货谈话中,他谈到了重写C#编译器并提供"编译器即服务",当然我在他们针对C#4.0时间框架时给人的印象. ...

那么,有谁知道这是什么状态?它似乎没有在CTP中存在,除了链接到2008 PDC会话视频(大约一个小时)之外,几乎没有关于WEB的信息.

这个倡议变暗了吗?

.net c# .net-4.0 compiler-as-a-service roslyn

25
推荐指数
2
解决办法
7705
查看次数

使用Roslyn - 编译器作为服务有什么好处

什么是关于Roslyn项目的CaaS(编译器即服务)?

使用Roslyn功能如何通过当前的C#4.0编译器提高C#应用程序的性能?

Roslyn-CTP中的已知限制/问题是什么?

compiler-as-a-service roslyn

20
推荐指数
3
解决办法
8981
查看次数

我可以使用Roslyn进行编译时代码重写吗?

比如我有

class Foo: INotifyPropertyChanged {
    public event PropertyChangedEventHandler PropertyChanged;
    public int Bar {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我可以在编译时获取Foo类AST并重写Bar

    public string Bar
    {
        get { return this.bar; }

        set 
        {
            if (value != this.bar)
            {
                this.phoneNumberValue = value;
                PropertyChanged(this, new PropertyChangedEventArgs("Bar"));
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

.

c# metaprogramming compiler-as-a-service roslyn

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

编译器即服务有什么好处

在Anders Hejlsberg的.NET 4.0演示文稿中,他在.NET 5.0("或未来版本")中讨论过,他们正在研究"编译器即服务"模型.

Anders Hejlsberg的状态:[source] [1]"我们想要打开我们的编译器,使它成为一个API,你可以调用它来编译一段代码并获取表达式树和/或IL.这可以实现一系列场景,例如应用程序可编程性,交互式提示,用户编写的重构,以及嵌入C#的小岛的特定领域语言."

我正在努力寻找一个真正有用的实际例子.我错过了这里的主要概念吗?或者这真的会对语言有益吗?

[1]:http://www.simple-talk.com/opinion/geek-of-the-week/anders-hejlsberg-geek-of-the-week/编译器即服务

.net compiler-as-a-service roslyn

10
推荐指数
2
解决办法
1668
查看次数

编译器即服务:如何构建重构工具?

微软的Lisa Feigenbaum在这里谈到"编译器即服务".我已经读过这将使构建重构工具变得更容易.怎么样?Mono的CAAS很棒,但如果微软版本相似,我看不出这个特定的用例是如何完成的.

c# compiler-construction mono compiler-as-a-service roslyn

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

Boo vs Nemerle有什么区别?

看起来这两种语言都被称为"C#应该是什么",使用hygenic宏,REPL,Compiler作为Serivce(CaaS),静态+鸭子打字(C#之前的方式).这两种语言之间是否有任何重大差异,或者它们只是两种不同的实现,或多或少相同的东西?我在某地读过Nemerle的宏观服务比Boo更强大; 这是真的?

他们如何在当前活动,成熟度和IDE集成方面进行比较?

此外,C#5.0传闻的CaaS功能是否可能会使它们过时,如果它实现,或者是否有能够使它们保持相关的功能?

macros boo nemerle compiler-as-a-service

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

是否可以在没有编译的情况下调用C#词法/句法分析器?

考虑到SO的这个问题,调用整个C#内存编译器.当只需要词法和句法分析时:将文本解析为词汇流,检查它们并退出.

是否有可能在当前版本的System.CodeDom.Compiler中,如果没有 - 它会是吗?

.net c# codedom lexical-analysis compiler-as-a-service

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

Mono Cecil和NRefactory之间的关系是什么?如何将它们与Roslyn进行比较?

据我所知,微软的Compiler as a Service或Roslyn项目的灵感来自Mono Cecil.

但是Mono Cecil和NRefactory之间的关系是什么?一个人用另一个吗?或者他们是做同样事情的替代技术?

看起来它们都提供了相同的代码分析服务,就像Roslyn一样.

c# mono.cecil compiler-as-a-service roslyn nrefactory

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