xref: /llvm-project/flang/README.md (revision 85057c1b43d8ee68ebc60b51fa45e047844358b7)
1413467f9SDavid Truby# Flang
29e7548abSGary Klimowicz
3413467f9SDavid TrubyFlang is a ground-up implementation of a Fortran front end written in modern
4413467f9SDavid TrubyC++. It started off as the f18 project (https://github.com/flang-compiler/f18)
5413467f9SDavid Trubywith an aim to replace the previous flang project
6413467f9SDavid Truby(https://github.com/flang-compiler/flang) and address its various deficiencies.
7413467f9SDavid TrubyF18 was subsequently accepted into the LLVM project and rechristened as Flang.
863141a07SStephane Chauveau
9f7bd4ef7SSylvestre LedruPlease note that flang is not ready yet for production usage.
10f7bd4ef7SSylvestre Ledru
11c90ce54cSSteve Scalpone## Getting Started
1263141a07SStephane Chauveau
13eaff2004Ssameeran joshiRead more about flang in the [docs directory](docs).
14eaff2004Ssameeran joshiStart with the [compiler overview](docs/Overview.md).
151b50ccdbSpsteinfeld
16c90ce54cSSteve ScalponeTo better understand Fortran as a language
17413467f9SDavid Trubyand the specific grammar accepted by flang,
18eaff2004Ssameeran joshiread [Fortran For C Programmers](docs/FortranForCProgrammers.md)
19c90ce54cSSteve Scalponeand
20f09587c6Sbrett koonceflang's specifications of the [Fortran grammar](docs/f2018-grammar.md)
21c90ce54cSSteve Scalponeand
22f09587c6Sbrett kooncethe [OpenMP grammar](docs/OpenMP-4.5-grammar.md).
231b50ccdbSpsteinfeld
24c90ce54cSSteve ScalponeTreatment of language extensions is covered
25eaff2004Ssameeran joshiin [this document](docs/Extensions.md).
26c90ce54cSSteve Scalpone
27c90ce54cSSteve ScalponeTo understand the compilers handling of intrinsics,
28eaff2004Ssameeran joshisee the [discussion of intrinsics](docs/Intrinsics.md).
29c90ce54cSSteve Scalpone
30413467f9SDavid TrubyTo understand how a flang program communicates with libraries at runtime,
31eaff2004Ssameeran joshisee the discussion of [runtime descriptors](docs/RuntimeDescriptor.md).
32c90ce54cSSteve Scalpone
33c90ce54cSSteve ScalponeIf you're interested in contributing to the compiler,
34eaff2004Ssameeran joshiread the [style guide](docs/C++style.md)
35c90ce54cSSteve Scalponeand
36eaff2004Ssameeran joshialso review [how flang uses modern C++ features](docs/C++17.md).
3763141a07SStephane Chauveau
38bc9cdfa1SSameeran joshiIf you are interested in writing new documentation, follow
394ae83bb2SLouis Dionne[LLVM's Markdown style guide](https://github.com/llvm/llvm-project/blob/main/llvm/docs/MarkdownQuickstartTemplate.md).
40bc9cdfa1SSameeran joshi
41*85057c1bSShivam GuptaConsult the [Getting Started with Flang](docs/GettingStarted.md)
42*85057c1bSShivam Guptafor information on building and running flang.
43