*
Quick Links|Home|Worldwide
Microsoft*
Search for


F# Tool Support

F# runs on the .NET platform. This means that nearly all the major tools for the platform can be easily reused for F# code. For example, F# produces intermediary language code, with a close correspondence to the source text, and with sensible generated identifier names. This means debuggers, profilers and other tools not only work without any problems, but also that their results are just as intelligible as when applied to C# code. Furthermore, F#'s excellent bi-directional language interoperability means that you can even use code generation tools such as parser-generators.

Because of this, F# has a surprisingly powerful and complete set of tools for a research language. Traditionally, functional languages have not had good profilers or graphical debuggers. With F# these tools essentially come for free.

The most important tools supported by F# are:

  • A command line compiler (fsc.exe) supporting separate compilation.

  • Graphical interactive debugging (via Visual Studio).

  • Parsing and Lexing (fslex.exe and fsyacc.exe).

Debugging

Debugging with Visual Studio.NET is well supported. Debugging is supported through any .NET debugger, e.g. the command line "cordbg" tool that comes with the .NET Framework SDK, or the graphical debugger "DbgClr".  These are good alternatives if you do not have Visual Studio.

Profiling

Profiling is supported through any .NET profiler, such as the CLR profiler. Integrated performance profiling is also supported in Visual Studio 2005. Also Brad Abrams blog provides a comprehensive list of profilers for the CLR (as of April 2005).

Parsing

Parsing and Lexing is supported by using the fslex.exe and fsyacc.exe tools that come with the F# distribution. The input to the tools follow the pattern of the OCaml ocamllex and ocamlyacc tools, and also the Moscow ML mosmllex and mosmlyacc tools. You may also use other .NET parser tools, e.g. CSTools written by Malcolm Crowe (http://cis.paisley.ac.uk/crow-ci0/).






©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement