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