# FunC program declarations (https://docs-fpm2731fy-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](/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](/llms/tolk/from-func/tolk-vs-func/content.md). For new smart contract projects, use the [Acton toolchain](/llms/contract-dev/acton/content.md).
</Callout>

A FunC program is a list of:

* [Function declarations and definitions](/llms/languages/func/functions/content.md)
* [Global variable declarations](/llms/languages/func/global-variables/content.md)
* [Compiler directives](/llms/languages/func/compiler-directives/content.md)
