Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Microsoft Programming

Microsoft Previews Compiler-as-a-Service Software 171

angry tapir writes "Microsoft will release a Community Technology Preview of a new type of compiler its researchers have been building — code-named Project Roslyn — a company executive announced Thursday. Roslyn is a compiler for C# and Visual Basic with a set of APIs that developers can use to fine-tune their code. It resembles a model developed by the Mono Project, in which the information the compiler generates about a program can be reused as a library."
This discussion has been archived. No new comments can be posted.

Microsoft Previews Compiler-as-a-Service Software

Comments Filter:
  • Didn't NetCraft confirm it?

    • No no, you're thinking C#. Which is not in any way to be confused with C3. Which is not at all a typo that completely slipped through... Nothing to see here. Move along. /s VB6 is dead, but VB.NET is still alive and kicking (sadly) both as a transitional language from VB6 and as a language for new projects, but IIRC Microsoft suggested C# and avoiding VB.NET where possible.
      • Why "sadly" with visual basic .NET? I haven't used it for a good few years, but it's only superficially different from C#.
        • There are some who claim that its somewhat verbose syntax ('dim varname as vartype' instead of 'vartype varname;' for example) and Basic-like loop and code structure make it an inherently worse language. It looks kind of ugly to an experienced developer in C-style languages, but I honestly don't see much basis for disliking it beyond a degree of elitism that drives one to scorn a highly readable "easy to learn" language.

          Under the covers, aside from a few assemblies specificlaly to aid compatibility with leg

          • by Anonymous Coward

            ...I honestly don't see much basis for disliking it beyond a degree of elitism that drives one to scorn a highly readable "easy to learn" language.

            I know someone, a Perl programmer who thinks Python is too "childish" - IIRC is how he put it.

            I think it's a bit ironic that many programmers and other CS types have this elitism towards easy to learn language when the whole point of computer languages was to make it easier for the programmer. No one seems to remember their CS history and how human readable languages were developed because assembly and machine code was just too cumbersome.

            • by julesh ( 229690 )

              The problem is that producing a programming language with verbose keywords and so on doesn't actually make it any easier to work with, at least once you get beyond trivial levels. The easiness is superficial. Once you get beyond the surface level (which most people can do in a matter of just a few weeks working with a language) the verbosity just gets in the way of seeing the truly important things. And the consistency of c-like syntax means there's actually less stuff to remember. How do you end the bl

            • by mangu ( 126918 )

              the whole point of computer languages was to make it easier for the programmer

              That's very true and that's why I use Python a lot, despite having learned to write software in the 1970s, in FORTRAN in an IBM/370.

              However, there's a moment when ease of use limits the programmer if he needs to go to the limits of performance. We are used to think that we have CPU enough, so it's not necessary to optimize for performance anymore.

              That might be true for business software, under some circumstances. Scientific and engineering software, OTOH, could still use a lot more CPU than what we have rig

              • You cannot do this with object oriented programming

                This is done all the time with object oriented programming. Perhaps what you meant to say is that you can't do this with object oriented languages that hide pointer arithmetic. That would be true. It would also be true that you can't do it with procedural languages that hide pointer arithmetic.

                • by mangu ( 126918 )

                  Perhaps what you meant to say is that you can't do this with object oriented languages that hide pointer arithmetic

                  Yes, that was what I meant. You could do it with objects in C++.

                  Problem is C++ has so many quirks that what I often do is to think in objects but implement in plain C. Object orientation is a principle that you can apply even if your programming language doesn't support objects.

          • My main reason for disliking VB.NET is I don't want to wreck my VB6 skills.

            While I wouldn't voluntarily want to go back to VB6 development ... well, it's something to fall back on. There's so much VB6 software out there, that it's the COBOL of the future - people are likely to be wanting skilled VB6 developers and they are probably going to have to pay through the nose for them. A nice little pension plan.

            VB.NET is close enough to VB6 in syntax, but different enough to ruin my memory of VB6. So I have avoid

            • While I wouldn't voluntarily want to go back to VB6 development ... well, it's something to fall back on. There's so much VB6 software out there, that it's the COBOL of the future - people are likely to be wanting skilled VB6 developers and they are probably going to have to pay through the nose for them. A nice little pension plan.

              There will be a market for VB6 programmers for a while. I'd be willing to bet there will be a nice market niche for individuals or small firms that do nothing but VB6 to <insert new language> conversions for years to come.

              I've finally convinced one of my clients to port their code over from VB6 to *something else* (I've been trying to get them to switch since 2006). Their VB6 programmer/Access person is retiring next July and they've finally seen the light that their VB6/Access solution needs to be

            • There's so much VB6 software out there, that it's the COBOL of the future

              Most COBOL software is extremely complex stuff running on mainframes of banks and insurance companies.

              Most VB6 software is something that was coded in 15 minutes to fill a need in a lab computer, or a frontend to some command-line program that isn't written in VB. This is not me looking down upon VB6, that's just what VB6 was designed to do: it's easy to learn and you could get something running on it fast, so that's what people did when they just needed something quick. The result of it is that if someb

      • here does seem to be a c3 programming language [c3-lang.org]. The designer's blog [c3lang.org] gives the aims as:

        C makes programming more enjoyable for serious programmers.

        C is a general-purpose programming language that supports
        – low-level programming
        – data abstraction
        – object-oriented programming
        – generic programming
        – functional programming
        – metaprogramming

        It sounds a bit like an "all things to all men" Ada or PL/1 in vapourwear

      • No no, you're thinking C#. Which is not in any way to be confused with C3. Which is not at all a typo that completely slipped through... Nothing to see here.

        That's a bit harsh, don't you think? I mean I could see the criticism if this were a professional news outlet rather than someone's personal blog...

    • guys, stop confusing this with SaaS, the Java compiler API, GCC plugins, etc...

      Just watch the damn video [msdn.com]!

  • by reashlin ( 1370169 ) on Friday September 16, 2011 @03:08AM (#37417718)

    http://cm.bell-labs.com/who/ken/trust.html [bell-labs.com]

    It is left as a exercise to the reader to see the point I'm trying to make.

    • Please see replies to c0lo's post [slashdot.org].
    • That's a brilliant article and should be required reading. It's good enough reason to not use Microsoft's present compilers.

      Just for the record, though, the article doesn't seem to suggest anything about actual compilers as a service; it still seems to discuss a normal compiler that runs on your local machine. Very confusingly titled.

    • by Jonner ( 189691 )

      http://cm.bell-labs.com/who/ken/trust.html [bell-labs.com]

      It is left as a exercise to the reader to see the point I'm trying to make.

      I don't think that's any more relevant now than it has been for decades when using proprietary, binary-only development tools from MS and others. Thompson's point was that even having source, which was always assumed on Unix systems, is not sufficient to prevent trojans for being inserted into code.

      The description "Compiler-as-a-Service" is misleading. It doesn't mean that people will ship their source to MS and get back object code. It simply means that the compiler exposes an API for introspecting code. T

  • Wait what?

    I thought I was already using System.CodeDom.Compiler to dynamically create assemblies?

    Also, converting code from one language to another isn't new in the slightest. Redgate's Reflector has been disassembling IL and displaying it in C#, and VB for ages. I'm sure there are open source equivalents too.

    I fail to see what all the excitement is ... Unless they're able to give me an AST to mess with? Even then I might not be terribly interested.

    It's quite possibly a terrible article. I mean C3! WTH?!

    • by Tacvek ( 948259 )

      The Compiler as a Service system should give us some form of AST. This should be exactly the same AST as Microsoft uses for Intellisense, since one of the goals of this project internally was to allow Intelisense and the compiler share as much code as possible, since they previously had separate implementations of some analysis passes, and other complicated code, with the Intellisense version not full matching the version in the compiler.

      I suspect we may also have the capability of manipulating the AST, and

  • by 2phar ( 137027 ) on Friday September 16, 2011 @04:02AM (#37417886)
    not 'service' as in 'zuckerberg/NSA world domination'
  • First they "As-A-Service"ed the search and I did not speak out,
    for I was not a search specialist.

    Then they AASed the aggregation and I did not speak out,
    for I was not an aggregation specialist.

    Then they AASed the compiler, ...

    Then they AASed the debugger, ...

    Then they AASed the programmer, ...

    They they AASed the algorithmist, ...

    Then they AASed the thinker, ...

    Then they AASed the lover, ...

    Then they programmed us remaining robots to never speak out again.

  • Pentium Processor Optimization Tools by Michael L. Schmit comes with a floppy that contains an "Optimizing Assembler". It doesn't actually optimize your code, but produces a formatted listing that gives the timing of each instruction, as well as pipeline stalls and the like. One can then use the listing to refactor the assembly source to be more efficient.

    The book is long out of print but can easily be had used. It's also a good book for learning x86 assembly in general.

  • Comment removed based on user account deletion
  • From TFA: "It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly."

    So it turns VB/C# into...Obj-C!

    *ducks*

    • From TFA: "It also adds dynamic typing to the statically typed C# and Visual Basic, allowing developers to add objects and new variables to a program on the fly."

      So it turns VB/C# into...Obj-C!

      *ducks*

      TFA is clueless, since dynamic (duck) typing has been a part of C# since version 4.0, and a part of VB since version 1.0.

  • The title on the article is misleading. The author is confusing the "Software as a Service [wikipedia.org]" distribution model with the "Just In Time [wikipedia.org]" (JIT) compilation model. The article subject is about how Microsoft, through the Roslyn architecture, is allowing SDK level access to the JIT compiler that runs the .NET applications on the host computer.

    • Whereas you are confusing "compiler" and "JIT compiler" here. Roslyn has nothing whatsoever to do with JIT-compilation of CIL bytecode to native code. It is about compilation of C# and VB source code to CIL bytecode - but more than that, since it also exposes intermediate steps (such as AST).

      But, yeah, this still has nothing to do with SaaS.

"Atomic batteries to power, turbines to speed." -- Robin, The Boy Wonder

Working...