summaryrefslogtreecommitdiffstats
path: root/docs/language-reference/01-introduction.md
diff options
context:
space:
mode:
authorTheresa Foley <10618364+tangent-vector@users.noreply.github.com>2024-08-22 11:54:27 -0700
committerGitHub <noreply@github.com>2024-08-22 11:54:27 -0700
commite4088cd602bd4d5a72fea67a787b1319acfc044d (patch)
tree12fcbfbb4f13a227401ce4a1c25123d7c6fa0d89 /docs/language-reference/01-introduction.md
parentb5bb82411cc6101b66283f7d0abca7ceb58aa2f6 (diff)
Add skeleton of a language reference. (#4808)
The files being checked in here were initially written 2-3 years ago. They are very clearly incomplete, outdated and, quite often, inaccurate. The intention of this change is to get an initial skeleton in place for the large-scale structure of a language reference (for now avoiding the term "specification" and all the weight it carries). Future commits should be able to add to flesh out this skeleton and start to make the document more complete and more accurate.
Diffstat (limited to 'docs/language-reference/01-introduction.md')
-rw-r--r--docs/language-reference/01-introduction.md35
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/language-reference/01-introduction.md b/docs/language-reference/01-introduction.md
new file mode 100644
index 000000000..fe6063984
--- /dev/null
+++ b/docs/language-reference/01-introduction.md
@@ -0,0 +1,35 @@
+> Note: This document is a work in progress. It is both incomplete and, in many cases, inaccurate.
+
+Introduction
+============
+
+Slang is a programming language primarily designed for use in *shader programming*, by which we mean performance oriented GPU programming for real-time graphics.
+
+Overview
+--------
+
+This document aims to provide a detailed reference for the Slang language and its supported constructs.
+
+The Slang compiler *implementation* may deviate from the language as documented here, in a few key ways:
+
+* The implementation is necessarily imperfect, and can have bugs
+
+* The implementation may not fully support constructs documented here, or their capabilities may not be as complete as what is documented
+
+* The implementation may support certain constructs that are experimental, deprecated, or are otherwise intentionally undocumented
+
+Where possible, this document will call out known deviations between the language as defined here and the implementation in the compiler.
+
+Terminology
+-----------
+
+> Note: This section is not yet complete.
+>
+> This section should detail how the document uses terms like "may" and "must," if we intend for those to be used in a manner consistent with [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).
+
+Typographical Conventions
+-------------------------
+
+> Note: This section is not yet complete.
+>
+> This section should clarify how the document displays code fragments, grammar productions, etc.