You are not logged in. Your edit will be placed in a queue until it is peer reviewed.
We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.
Required fields*
- 7$\begingroup$ Having undefined behaviour is rather unusual for a language, actually - you want the semantics of any code to be fully specified. Have a look at Why would a language have a concept of undefined behavior instead of raising an error? on Programming Language Design and Implementation to understand why C/C++ went this way. $\endgroup$Bergi– Bergi2023-08-18 10:10:13 +00:00Commented Aug 18, 2023 at 10:10
- 2$\begingroup$ "impossible to always detect undefined behavior at compile time" -- you don't have to detect everything at compile time, you can generate run-time checks. But this usually results in performance impacts that may be undesirable. $\endgroup$Barmar– Barmar2023-08-18 14:15:35 +00:00Commented Aug 18, 2023 at 14:15
- $\begingroup$ If the language is Turing-complete rather than Turing-hard, then every valid program is (somehow) equivalent to a Turing machine program - and the behavior of Turing machines is well-defined. So I suggest tweaking your question. $\endgroup$einpoklum– einpoklum2023-08-20 12:21:56 +00:00Commented Aug 20, 2023 at 12:21
- $\begingroup$ Either you misunderstood the person on Quora or they were wrong. The grammar/syntax absolutely does not have to contain undefined behavior. Undefined behavior in C was intentionally used to make the source code easily portable. $\endgroup$jmoreno– jmoreno2023-08-20 14:08:29 +00:00Commented Aug 20, 2023 at 14:08
- 1$\begingroup$ Note that no implementation of c is actually Turing-complete: it's equivalent to the requirement that a Turing machine must have an unbounded tape. Typical c implementations are stack, memory, and storage limited, and are equivalent to a Turing machine with a finite bounded tape: they aren't 'complete' because there are Turning problems they can't solve. $\endgroup$david– david2023-08-21 00:29:15 +00:00Commented Aug 21, 2023 at 0:29
| Show 4 more comments
How to Edit
- Correct minor typos or mistakes
- Clarify meaning without changing it
- Add related resources or links
- Always respect the author’s intent
- Don’t use edits to reply to the author
How to Format
- create code fences with backticks ` or tildes ~ ```
like so
``` - add language identifier to highlight code ```python
def function(foo):
print(foo)
``` - put returns between paragraphs
- for linebreak add 2 spaces at end
- _italic_ or **bold**
- indent code by 4 spaces
- backtick escapes
`like _so_` - quote by placing > at start of line
- to make links (use https whenever possible) <https://example.com>[example](https://example.com)<a href="https://example.com">example</a>
- MathJax equations
$\sin^2 \theta$
How to Tag
A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.
- complete the sentence: my question is about...
- use tags that describe things or concepts that are essential, not incidental to your question
- favor using existing popular tags
- read the descriptions that appear below the tag
If your question is primarily about a topic for which you can't find a tag:
- combine multiple words into single-words with hyphens (e.g. complexity-theory), up to a maximum of 35 characters
- creating new tags is a privilege; if you can't yet create a tag you need, then post this question without it, then ask the community to create it for you