# Terminology and Syntax

### Terminology

In this document, the following terminology is used to describe syntax or behavior that is not allowed in the language:

* `Invalid` means that the invalid program will not even be allowed to run. The program error is detected and reported statically by the type checker.
* `Run-time error` means that the erroneous program will run, but bad behavior will result in the execution of the program being aborted.

### Syntax and Behavior

Much of the language's syntax is inspired by Swift, Kotlin, and TypeScript.

Much of the syntax, types, and standard library is inspired by Swift, which popularized e.g. optionals, argument labels, and provides safe handling of integers and strings.

Resources are based on liner types which were popularized by Rust.

Events are inspired by Solidity.

**Disclaimer:** In real Cadence code, all type definitions and code must be declared and contained in contracts or transactions, but we omit these containers in examples for simplicity.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://max-daunarovich.gitbook.io/flow-network/introduction/terminology-and-syntax.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
