# FunC program declarations (https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/languages/func/declarations-overview/content.md)



<Callout type="note">
  The official smart contract language of TON Blockchain is [Tolk](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/tolk/overview/content.md). FunC is now a **legacy** language, with its compiler no longer maintained.

  Learn how to [migrate from FunC to Tolk](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/tolk/from-func/tolk-vs-func/content.md). For new smart contract projects, use the [Acton toolchain](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/contract-dev/acton/content.md).
</Callout>

A FunC program is a list of:

* [Function declarations and definitions](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/languages/func/functions/content.md)
* [Global variable declarations](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/languages/func/global-variables/content.md)
* [Compiler directives](https://docs-5plbi9fp8-ton-core-docs.vercel.app/llms/languages/func/compiler-directives/content.md)
