| # Flang | |
| Flang is a ground-up implementation of a Fortran front end written in modern | |
| C++. It started off as the f18 project (https://github.com/flang-compiler/f18) | |
| with an aim to replace the previous flang project | |
| (https://github.com/flang-compiler/flang) and address its various deficiencies. | |
| F18 was subsequently accepted into the LLVM project and rechristened as Flang. | |
| Please note that flang is not ready yet for production usage. | |
| ## Getting Started | |
| Read more about flang in the [docs directory](docs). | |
| Start with the [compiler overview](docs/Overview.md). | |
| To better understand Fortran as a language | |
| and the specific grammar accepted by flang, | |
| read [Fortran For C Programmers](docs/FortranForCProgrammers.md) | |
| and | |
| flang's specifications of the [Fortran grammar](docs/f2018-grammar.md) | |
| and | |
| the [OpenMP grammar](docs/OpenMP-4.5-grammar.md). | |
| Treatment of language extensions is covered | |
| in [this document](docs/Extensions.md). | |
| To understand the compilers handling of intrinsics, | |
| see the [discussion of intrinsics](docs/Intrinsics.md). | |
| To understand how a flang program communicates with libraries at runtime, | |
| see the discussion of [runtime descriptors](docs/RuntimeDescriptor.md). | |
| If you're interested in contributing to the compiler, | |
| read the [style guide](docs/C++style.md) | |
| and | |
| also review [how flang uses modern C++ features](docs/C++17.md). | |
| If you are interested in writing new documentation, follow | |
| [LLVM's Markdown style guide](https://github.com/llvm/llvm-project/blob/main/llvm/docs/MarkdownQuickstartTemplate.md). | |
| Consult the [Getting Started with Flang](docs/GettingStarted.md) | |
| for information on building and running flang. |