# 5.1 Hello world program

We have discussed the theoretical aspects of Deno, including its introduction, architecture, threading model, and the Deno-v8 bridge. Now, we will explore how a program works within the Deno environment. We will start with a simple program that prints a message, like "hello world," to the console.&#x20;

Why start with a simple program? We want to focus on the basic elements of Deno. Understanding these elements is essential for grasping how Deno works. By analyzing Deno's code, we can see how even the simplest program is executed. Once we understand these basics, we can move on to more complex programs. This chapter contains a lot of important information, so take your time to understand it thoroughly. Don't rush through it. This chapter, along with the next one, is the core of this book.&#x20;

To get the most out of it, we recommend reading this chapter twice before moving on to the next content. This will help you learn more effectively.

## Chapter contents

{% content-ref url="/pages/-MLAxmBFWA4gOaFMHAK5" %}
[5.2 Basic hello world](/internals-of-deno/foundations/basic-hello-world.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MLB-rNXPXAZOu4Wtk9m" %}
[5.3 Main program of Deno](/internals-of-deno/foundations/main-program.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MM4\_fOXXB-D4idQz\_sP" %}
[5.4 Module Specifier](/internals-of-deno/foundations/resolve_url_or_path.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MM4e82aws-K4d1sBGAM" %}
[5.5 CLI Factory](/internals-of-deno/foundations/program-state.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MM4o6l0olSq0n\_RDlIU" %}
[5.6 Permissions](/internals-of-deno/foundations/permissions.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MMDO8bFk4-9q5rsdQ84" %}
[5.7 Main Worker](/internals-of-deno/foundations/mainworker.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MMNiu9iH5-ZQDvxh9W7" %}
[5.8 JS Runtime](/internals-of-deno/foundations/jsruntime.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MMy6iuFIvaXzmkWC\_Tn" %}
[5.9 Run main module](/internals-of-deno/foundations/execute_module.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MN56hnCC1LPr48nkJyE" %}
[5.10 Load module](/internals-of-deno/foundations/load-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MOxsVDOVBD4o2RMe4uy" %}
[5.11 Recursive module loading](/internals-of-deno/foundations/4.11-recursive-module-loading-and-module-graphs.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MOyqZZ4O4OC2mzel\_mS" %}
[5.12 Module graphs](/internals-of-deno/foundations/4.12-module-graphs.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MPG-eQDpGuYHVzZKMu8" %}
[5.13 File fetching](/internals-of-deno/foundations/4.13-file-fetcher.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MP3237HYU18XSIUR8Ts" %}
[5.14 Transpile](/internals-of-deno/foundations/4.13-check-and-or-transpilation.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MN7CaSt3jlN8apQmEOz" %}
[5.15 Register / compile module](/internals-of-deno/foundations/register-and-instantation.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MPM30\_Y3YmOd9sd\_DID" %}
[5.16 Instantiate module](/internals-of-deno/foundations/instantiate-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MN7KJ-P7nvPqFzKw3nk" %}
[5.17 Evaluate module](/internals-of-deno/foundations/evaluate-module.md)
{% endcontent-ref %}

{% content-ref url="/pages/lqnkxwufHqZGSUwmGhg6" %}
[Broken mention](broken://pages/lqnkxwufHqZGSUwmGhg6)
{% endcontent-ref %}


---

# 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://choubey.gitbook.io/internals-of-deno/foundations/hello-world.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.
