<p>Outline of question+justification soon to be expanded:</p>
<hr />
<ol>
<li>Managing Complexity is job #1</li>
<li>Abstraction is our #1 tool</li>
<li>A VHLL does abstraction best</li>
<li>So VHLL's should be our aim</li>
<li>Talking about VHLL's, with his optimized Forths, Charles Moore develops the most powerful VHLL's, yet he is unaware, and we are unaware, because we don't even know what a VHLL is.</li>
<li>A VHLL can be measured by functionality per word</li>
<li>Seeing all this, and how important computers are, we should make sure that VHLL is both owned, and defined, by us.</li>
</ol>
<hr />
<p>What is a Very High Level Language?  I think that this should only relate to the ability to create and work in very high level abstractions. But there is a problem...</p>
<p>I consider Forth to be a Very High Level Language because it is a DSL creation toolkit. In addition, the language literally has no syntax (as little as possible, I believe). And that lack of commas, parentheses, curly-braces and semicolons, keeps that clutter out of our mental way.</p>
<p>Think of XML and how it's so cluttered and there are less-than signs (&lt;) and greater-than-signs (&gt;) everywhere. That, to me, makes it a Very Low Level Language.</p>
<p>But Very Low Level Language is traditionally the assembly languages, and that means Forth, which is one step up from assembly.</p>
<p>But if Forth is just a Very Low Level Language, it would not be possible to create a :</p>
<ol>
<li>Basic</li>
<li>Pascal</li>
<li>Scheme
and other languages in Forth.</li>
</ol>
<p>So here's the corrollary question:</p>
<p>Is the Very High Level Language the language that is the DSL toolkit and can easily create <em>other</em> DSL's?  Or is it only the DSL's so created?</p>
<hr />
<p>Previous Question:</p>
<p>Not many programming languages claim to be a &quot;very high-level language&quot;. Yet the <a href="https://en.wikipedia.org/wiki/SETL" rel="nofollow noreferrer">SETL</a> programming language makes such a claim. At first, I thought it was arrogant. But now, I just don't know what to think. SETL was made in the 60's, but I'm not sure that should matter.</p>
<p>For future languages I hope to make, I would like to shoot for this, but I'm not sure what I'm shooting for.</p>
<p>I was considering Lisp a very high level language, with its powerful macros, after being exposed to <a href="https://letoverlambda.com/index.cl/toc" rel="nofollow noreferrer">&quot;Let Over Lambda&quot;</a>.</p>
<p>And I'm impressed with <a href="https://en.wikipedia.org/wiki/Factor_(programming_language)" rel="nofollow noreferrer">Factor by Slava Pestov</a>, which seems to implement the object oriented paradigm better than most languages.</p>
<p>I was highly impressed with <a href="https://en.wikipedia.org/wiki/Language_Integrated_Query" rel="nofollow noreferrer">LINQ</a>, and was wondering if its ability to handle sets qualifies it as being very high level?</p>
<p>So, then...</p>
<ol>
<li><p>In particular, what makes <strong>SETL</strong> a very high level language?</p>
</li>
<li><p>In general, what makes <strong>any particular language</strong> a very high level language?</p>
</li>
</ol>
<p>Just certain features? Or the overall synergy? It's DSL-ability? What do you think?</p>
<hr />
<p>Edit 1:</p>
<p>There seems to be a 22-video <a href="https://youtube.com/watch?v=CrOGcn95Ffc&amp;list=PLEoSo8qG5x2nfLFHi_qPXWmxwpknMkWCr&amp;index=2&amp;pp=iAQB" rel="nofollow noreferrer">2022 conference called the Logic and Practice of Programming</a> where Ada, APL, and SETL are being discussed with vigor, so SETL does not seem to be completely out of use. And if it's used for mission critical (like Ada), and shares the stage with very high level APL, perhaps there is more to the &quot;Very High Level Language&quot; story of SETL?</p>
<hr />
<p>Edit 2:</p>
<p>I have now watched many of the videos, and much of it is beyond my experience. According to Wikipedia, the SETL language influenced the ABC language, which greatly influenced the Python language. In the video conference, even though Guido van Rossum does not seem to tie back to SETL in particular, <a href="https://www.youtube.com/watch?v=xSsz53GnGsU&amp;list=PLEoSo8qG5x2nfLFHi_qPXWmxwpknMkWCr&amp;index=12" rel="nofollow noreferrer">he does explain how ABC significantly contributed to his creation of Python (profitable conversation starts at about 10 minutes.)</a></p>
<p>To those who are voting this question down. Please leave some feedback for the improvement of this question, and please reconsider your vote. The moderator thinks that there is some value in this question (I believe).</p>
<p>The close reason for this question states that this question lacks details or clarity regarding the problem you’re solving.</p>
<ol>
<li>The problem I am trying to solve is defining (or redefining) an important term to Software Engineering and Software Development</li>
<li>Lack of details should not be ascribed to what I have said or not said because the question is in pursuit of details. (If I am asking for details, the question should not be required to contain those details).</li>
<li>This question is very clear. What is a Very High Level Language? If you think this is unclear, then please explain why. Please that your dislike of the term, that the definition of the term itself has been unclear, does not relate to the actual clarity of the question itself, which is the only reason you should be downvoting.</li>
<li>Please be a responsible community member, and only downvote for the accepted reasons. Either that, or improve the question through the comments. Please do not have extended discussion about these matters in the comments -- please use the accepted area for extended discussion.</li>
</ol>
<p>Don't you think that it is profitable to both us and our disciplines if we at least explore what the idea of what a VHLL might be? I think that we should take back the term, and insist on it being interpreted more literally. To me, a VHLL should have a very high level of abstraction, however that is accomplished. Also, I think a VHLL should enable the use of more than one powerful paradigm, like the <a href="https://en.wikipedia.org/wiki/F_Sharp_(programming_language)" rel="nofollow noreferrer">F# programming language</a>, which is multiparadigm, and is influenced by many languages. But, I think that VHLL should directly relate to ability to abstract. Along those lines, I believe that both Forth and Lisp are examples of VHLL languages, and this is partially because there is almost no syntax, allowing greater abstraction ability. Is Haskell a VHLL? I don't know Haskell well enough to be able to say. Once again, I want to hear what you think.</p>
<p>I do intend to answer this question myself if given the opportunity.</p>

<language-design><language-comparison><design-choice-comparison><high-level-languages>
What makes a very high level language?
CC BY-SA 4.0
2023-07-30T19:46:32.860Z
This is not a very meaningful term, which has been used in multiple incompatible ways. There is a Wikipedia page for it that provides a couple of the definitions. What’s the goal you’re aiming at where this term matters? Is there a concrete scenario in mind?
Michael Homer
CC BY-SA 4.0
2023-07-30T21:32:56.630Z
Case in point: I would *not* consider Lisp a "very high level" language
Seggan
CC BY-SA 4.0
2023-07-30T22:44:32.683Z
@Seggan -- Lisp with its ultra powerful Macros *certainly is* **a Very High Level Language construction kit**, so I consider that to be equivalent.
MicroservicesOnDDD
CC BY-SA 4.0
2023-07-31T00:45:10.543Z
Macros don't make a language very high level. I can make an assembler with macros, would you consider that very high level?
Seggan
CC BY-SA 4.0
2023-07-31T02:12:12.440Z
@Seggan - But you can make a VHLL language using macros. Just because you find a failing case does not prove every case fails.
MicroservicesOnDDD
CC BY-SA 4.0
2023-07-31T02:29:22.540Z
You're certainly welcome to reclaim the term, but what I'm trying to get is clarity on what the intention of the question is so that we can tell what kind of answer it's looking for. So my question is still, in what way does the term matter to you? Is it seeking a *definition*, a *justification* for the SETL claim, is it looking to *defend* a claim that another language is very high-level, is it just seeking to make a language that could claim that designation *regardless* of what its definition is, or what?
Michael Homer
CC BY-SA 4.0
2023-07-31T02:40:54.633Z
I could only speculate one what brought on that sudden spate of downvotes, but the guidance on the vote button says "This question does not show any research effort; it is unclear or not useful", so people may feel some part of that applies, and they're allowed to vote that way if so. Observationally, across the network downvotes do tend to spike up when the author is involved in arguments in the comments, regardless of whether they're justified or not, but people shouldn't really be voting based on aspects that aren't within the post itself. I expect there is a suitable question within this.
Michael Homer
CC BY-SA 4.0
2023-07-31T03:32:44.360Z
I'm afraid I don't understand what you're asking for enough to offer advice, but you can [edit] the question to communicate what you mean, and it will automatically go into the queue to be reviewed by the community and reopened when you do. People will also be able to change their votes after editing if they like.
Michael Homer
CC BY-SA 4.0
2023-07-31T04:06:31.937Z
@MichaelHomer -- I may have to answer my own question in order to handle it properly.  How do I do that, since the question has been closed, and I can no longer add an answer?
MicroservicesOnDDD
CC BY-SA 4.0
2023-07-31T04:12:23.367Z
Once the question is reopened from the review queue after editing, you'll be able to post an answer to it (and so will other people who have one, too).
Michael Homer
CC BY-SA 4.0
2023-07-31T16:19:58.283Z
@MicroservicesOnDDD Please stop using the word "religious" as a pejorative term. There are certainly religious people in this community and you're going to have to get along with them if you want to be here.
kaya3
CC BY-SA 4.0
2023-07-31T18:02:33.833Z
@kaya3-supportthestrike -- Sorry. Perhaps you didn't know that [Software Development is a Religion](https://blog.codinghorror.com/software-development-its-a-religion/amp/)  ... "But software development is, and has always been, a religion. We band together into groups of people who believe the same things, with very little basis for proving any of those beliefs. Java versus .NET. Microsoft versus Google. Static languages versus Dynamic languages. We may kid ourselves into believing we're "computer scientists", but when was the last time you used a hypothesis and a control to prove anything?"
MicroservicesOnDDD
CC BY-SA 4.0
2023-08-01T19:24:35.613Z
If they don’t comprehend your edits then you’d need to make the question more comprehensible so that they did, and then they could vote to say the original close reasons were resolved. The comprehension is the key part of that. It’s usually better to have a single coherent question (as though it were asked that way in the first place) rather than labelled edits or responses within the body, but up to you how to put it. People are generally pretty keen to reopen things here. You have seen this process before on other sites on the network, so you have experience with how it works already.
Michael Homer
CC BY-SA 4.0
2023-08-01T22:38:08.353Z
@MicroservicesOnDDD You appear to have confused your ability to receive an answer to your question from volunteers on a website, with a fundamental liberty which must not be removed without due process. On the contrary, the fundamental liberty of freedom of association is what allows us to form a community and set our own standards as a community. Currently, more than half of your question is an argument about the question itself (i.e. meta-commentary), which makes this a very easy call ─ it does not meet our standards.
kaya3
CC BY-SA 4.0
2023-08-02T01:15:35.833Z
I think the edits have made the question worse rather than better. I would like to second Michael Homer's earlier comment that it's hard to understand *why* this term is important to define. A clear description of why the meaning of the term matters/is of interest to you and others would go a long way towards making this a viable question.
Isaiah
CC BY-SA 4.0
2023-08-02T02:40:38.157Z
@Isaiah -- I will work on the question to do what you ask.
MicroservicesOnDDD
<p>I can't put this any better than David Parnas:</p>
<blockquote>
<p>It is so common to hear phrases such as &quot;high level language&quot;, &quot;low
level language&quot; and &quot;linguistic level&quot; that it is necessary to
comment on the relation between the implied language hierarchy and the
hierarchies discussed in the earlier sections of this paper. It would
be nice, if, for example, the higher level languages were the
languages of the higher level &quot;abstract machines&quot; in the program
hierarchy. Unfortunately, this author can find no such relation and
cannot define the hierarchy that is implied in the use of those
phrases. In moments of scepticism one might suggest that the relation
is &quot;less efficient than&quot; or &quot;has a bigger grammar than&quot; or &quot;has a
bigger compiler than&quot;, however, none of those phrases suggests an
ordering, which is completely consistent with the use of the term. It
would be nice, if the next person to use the phrase &quot;higher level
language&quot; in a paper would define the hierarchy to which he refers.</p>
<ul>
<li>David Lorge Parnas, <em>On a `Buzzword': Hierarchical Structure</em>, IFIP Congress 1974: 336-339.</li>
</ul>
</blockquote>

CC BY-SA 4.0
2023-07-31T00:14:52.230Z
2023-07-31T00:14:52.230Z
Pseudonym
CC BY-SA 4.0
2023-07-31T02:35:53.930Z
Are you saying 1. The authors of SETL shouldn't use the term without context, or 2. I should not be asking about the term without context.  I would say the context is abstraction, but I don't know SETL, so I can't say. It could be the set-based nature. Wish I knew. Thanks for your contribution.
MicroservicesOnDDD
CC BY-SA 4.0
2023-07-31T02:42:00.683Z
I'm doing two things: 1) Sharing an important piece of software engineering lore. 2) Pointing out that any answer depends on how you interpret the question. I don't know what the SETL authors mean by that, but it sounds suspiciously like a marketing term, rather than referring to anything objective or technical.
Pseudonym
CC BY-SA 4.0
2023-08-01T15:59:12.747Z
Regardless if it was used as a marketing term, we as programmers are reprehensibly passive if we allow others to define our important terms for us. If we want to produce better software, we have to do better with our own tools -- use our words more deliberately, use our words more properly, and define our important terms explicitly and without unnecessary compromise.  So marketing used it.  The real question is, **how should WE use it!**
MicroservicesOnDDD
<p>This is subject to interpretation ─ as <a href="https://en.wikipedia.org/wiki/Very_high-level_programming_language" rel="noreferrer">Wikipedia</a> notes, the term's original meaning is not really distinct from what we now call a &quot;high-level language&quot;:</p>
<blockquote>
<p>The term VHLL [Very High-Level Language] was used in the 1990s for what are today more often called high-level programming languages (not &quot;very&quot;) used for scripting, such as Perl, Python, php, Ruby, and Visual Basic.</p>
</blockquote>
<p>This would apply to SETL, too, which was &quot;originally developed in the late 1960s&quot;. I don't think many people would describe SETL as &quot;very high-level&quot; by contemporary standards.</p>
<hr />
<p>If the term &quot;very high-level&quot; means anything today, I would argue that it means languages in which programs describe <em>problems</em> rather than <em>solutions</em>, and the language's implementation uses an algorithm to solve problems written in the language. This means that very high-level languages are declarative (the programmer writes declarations) rather than imperative (the programmer writes instructions).</p>
<p>Still, not all declarative languages are &quot;very high-level&quot; by this interpretation ─ the declarations must describe a problem rather than a solution to a problem ─ though that's debatable in many cases, and may depend less on the language than what program you are writing in that language. That said, I would say most functional languages aren't &quot;very high-level&quot; because to the extent that a functional program describes a problem, the language's implementation &quot;solves&quot; it simply by evaluating expressions, rather than some algorithm like a backtracking search.</p>
<p>My interpretation is obviously not one that everyone else will necessarily agree with, though it does coord with Wikipedia's description that</p>
<blockquote>
<p>VHLLs are usually domain-specific languages, limited to a very specific application, purpose, or type of task [...] For this reason, very high-level programming languages are often referred to as goal-oriented programming languages.</p>
</blockquote>
<p>Examples of what I would call very high-level languages include <a href="https://en.wikipedia.org/wiki/Logic_programming" rel="noreferrer">logic programming</a> languages, <a href="https://en.wikipedia.org/wiki/Constraint_programming" rel="noreferrer">constraint programming</a> languages, and perhaps some <a href="https://en.wikipedia.org/wiki/Query_language" rel="noreferrer">query languages</a>.</p>

CC BY-SA 4.0
2023-07-30T20:05:43.347Z
2023-07-30T20:16:15.010Z
2023-07-30T20:16:15.010Z
kaya3
CC BY-SA 4.0
2023-08-01T18:19:34.403Z
@MicroservicesOnDDD The truth is that when everybody else says the words "functional programming language", they don't mean Forth, and when they read the words "functional programming language", they don't think it includes Forth. Your opinion that people *should* use the term to mean a different thing to what they do use it to mean, is not a truth, it is a proposal which you are campaigning for. But it is not a proposal which will improve my answer here, as I have already told you. Now please stop imagining that you need to explain the concept or value of truth to me for any reason.
kaya3
CC BY-SA 4.0
2023-08-01T20:33:39.390Z
@MicroservicesOnDDD Please don’t have extended discussions in the comments, and certainly do not have extended discussions by deleting your comments shortly after posting them. kaya3 has been quite reasonable.
Alexis King
CC BY-SA 4.0
2023-07-30T21:18:15.897Z
@MicroservicesOnDDD Forth is a "[procedural, stack-oriented programming language](https://en.wikipedia.org/wiki/Forth_(programming_language))", in the [concatenative programming](https://en.wikipedia.org/wiki/Concatenative_programming_language) paradigm ─ functional languages [are characterised by](https://en.wikipedia.org/wiki/Functional_programming) their function definitions being *"trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program"*; Forth is not that.
kaya3
CC BY-SA 4.0
2023-07-30T22:35:07.773Z
@MicroservicesOnDDD I'm sure you have, and I'm sympathetic to your view that Forth is a functional language ─ at the same time, I would rather use words and terms the way that they are generally understood, since my answer here is not addressed to you individually, but to everyone on this site interested enough to read it.
kaya3
CC BY-SA 4.0
2023-07-30T23:10:09.843Z
@MicroservicesOnDDD Your view that Forth is a functional language is a view, an interpretation, not a truth. It is also not a widely-held interpretation. If you want to make the case for it as a truth then of course, do so, but this comment thread is not a suitable venue for such a campaign.
kaya3
CC BY-SA 4.0
2023-07-30T23:25:30.457Z
Comments should be used to request clarification or propose improvements; I have already clarified that I am using the term "functional programming" in the way that term is normally understood, which is also the way the term is described on the Wikipedia page I linked to, and I do not think editing my answer to use that term as if it has a different meaning would improve my answer. It is not interesting to me to debate whether the term *should* mean something different to what everybody else understands it to mean.
kaya3
# What makes a very high level language?
Posted by: username_0 on 2023-07-30
Outline of question+justification soon to be expanded:

---

1. Managing Complexity is job #1
2. Abstraction is our #1 tool
3. A VHLL does abstraction best
4. So VHLL's should be our aim
5. Talking about VHLL's, with his optimized Forths, Charles Moore develops the most powerful VHLL's, yet he is unaware, and we are unaware, because we don't even know what a VHLL is.
6. A VHLL can be measured by functionality per word
7. Seeing all this, and how important computers are, we should make sure that VHLL is both owned, and defined, by us.

---

What is a Very High Level Language? I think that this should only relate to the ability to create and work in very high level abstractions. But there is a problem...

I consider Forth to be a Very High Level Language because it is a DSL creation toolkit. In addition, the language literally has no syntax (as little as possible, I believe). And that lack of commas, parentheses, curly-braces and semicolons, keeps that clutter out of our mental way.

Think of XML and how it's so cluttered and there are less-than signs (<) and greater-than-signs (>) everywhere. That, to me, makes it a Very Low Level Language.

But Very Low Level Language is traditionally the assembly languages, and that means Forth, which is one step up from assembly.

But if Forth is just a Very Low Level Language, it would not be possible to create a :

1. Basic
2. Pascal
3. Scheme
   and other languages in Forth.

So here's the corrollary question:

Is the Very High Level Language the language that is the DSL toolkit and can easily create *other* DSL's? Or is it only the DSL's so created?

---

Previous Question:

Not many programming languages claim to be a "very high-level language". Yet the [SETL](https://en.wikipedia.org/wiki/SETL) programming language makes such a claim. At first, I thought it was arrogant. But now, I just don't know what to think. SETL was made in the 60's, but I'm not sure that should matter.

For future languages I hope to make, I would like to shoot for this, but I'm not sure what I'm shooting for.

I was considering Lisp a very high level language, with its powerful macros, after being exposed to ["Let Over Lambda"](https://letoverlambda.com/index.cl/toc).

And I'm impressed with [Factor by Slava Pestov](https://en.wikipedia.org/wiki/Factor_(programming_language)), which seems to implement the object oriented paradigm better than most languages.

I was highly impressed with [LINQ](https://en.wikipedia.org/wiki/Language_Integrated_Query), and was wondering if its ability to handle sets qualifies it as being very high level?

So, then...

1. In particular, what makes **SETL** a very high level language?
2. In general, what makes **any particular language** a very high level language?

Just certain features? Or the overall synergy? It's DSL-ability? What do you think?

---

Edit 1:

There seems to be a 22-video [2022 conference called the Logic and Practice of Programming](https://youtube.com/watch?v=CrOGcn95Ffc&list=PLEoSo8qG5x2nfLFHi_qPXWmxwpknMkWCr&index=2&pp=iAQB) where Ada, APL, and SETL are being discussed with vigor, so SETL does not seem to be completely out of use. And if it's used for mission critical (like Ada), and shares the stage with very high level APL, perhaps there is more to the "Very High Level Language" story of SETL?

---

Edit 2:

I have now watched many of the videos, and much of it is beyond my experience. According to Wikipedia, the SETL language influenced the ABC language, which greatly influenced the Python language. In the video conference, even though Guido van Rossum does not seem to tie back to SETL in particular, [he does explain how ABC significantly contributed to his creation of Python (profitable conversation starts at about 10 minutes.)](https://www.youtube.com/watch?v=xSsz53GnGsU&list=PLEoSo8qG5x2nfLFHi_qPXWmxwpknMkWCr&index=12)

To those who are voting this question down. Please leave some feedback for the improvement of this question, and please reconsider your vote. The moderator thinks that there is some value in this question (I believe).

The close reason for this question states that this question lacks details or clarity regarding the problem you’re solving.

1. The problem I am trying to solve is defining (or redefining) an important term to Software Engineering and Software Development
2. Lack of details should not be ascribed to what I have said or not said because the question is in pursuit of details. (If I am asking for details, the question should not be required to contain those details).
3. This question is very clear. What is a Very High Level Language? If you think this is unclear, then please explain why. Please that your dislike of the term, that the definition of the term itself has been unclear, does not relate to the actual clarity of the question itself, which is the only reason you should be downvoting.
4. Please be a responsible community member, and only downvote for the accepted reasons. Either that, or improve the question through the comments. Please do not have extended discussion about these matters in the comments -- please use the accepted area for extended discussion.

Don't you think that it is profitable to both us and our disciplines if we at least explore what the idea of what a VHLL might be? I think that we should take back the term, and insist on it being interpreted more literally. To me, a VHLL should have a very high level of abstraction, however that is accomplished. Also, I think a VHLL should enable the use of more than one powerful paradigm, like the [F# programming language](https://en.wikipedia.org/wiki/F_Sharp_(programming_language)), which is multiparadigm, and is influenced by many languages. But, I think that VHLL should directly relate to ability to abstract. Along those lines, I believe that both Forth and Lisp are examples of VHLL languages, and this is partially because there is almost no syntax, allowing greater abstraction ability. Is Haskell a VHLL? I don't know Haskell well enough to be able to say. Once again, I want to hear what you think.

I do intend to answer this question myself if given the opportunity.
**Tags:** language-design language-comparison design-choice-comparison high-level-languages
> **Comments:**
> **username_1**: This is not a very meaningful term, which has been used in multiple incompatible ways. There is a Wikipedia page for it that provides a couple of the definitions. What’s the goal you’re aiming at where this term matters? Is there a concrete scenario in mind?  
> **username_2**: Case in point: I would *not* consider Lisp a "very high level" language  
> **username_0**: @Seggan -- Lisp with its ultra powerful Macros *certainly is* **a Very High Level Language construction kit**, so I consider that to be equivalent.  
> **username_2**: Macros don't make a language very high level. I can make an assembler with macros, would you consider that very high level?  
> **username_0**: @Seggan - But you can make a VHLL language using macros. Just because you find a failing case does not prove every case fails.  
> **username_1**: You're certainly welcome to reclaim the term, but what I'm trying to get is clarity on what the intention of the question is so that we can tell what kind of answer it's looking for. So my question is still, in what way does the term matter to you? Is it seeking a *definition*, a *justification* for the SETL claim, is it looking to *defend* a claim that another language is very high-level, is it just seeking to make a language that could claim that designation *regardless* of what its definition is, or what?  
> **username_1**: I could only speculate one what brought on that sudden spate of downvotes, but the guidance on the vote button says "This question does not show any research effort; it is unclear or not useful", so people may feel some part of that applies, and they're allowed to vote that way if so. Observationally, across the network downvotes do tend to spike up when the author is involved in arguments in the comments, regardless of whether they're justified or not, but people shouldn't really be voting based on aspects that aren't within the post itself. I expect there is a suitable question within this.  
> **username_1**: I'm afraid I don't understand what you're asking for enough to offer advice, but you can [edit] the question to communicate what you mean, and it will automatically go into the queue to be reviewed by the community and reopened when you do. People will also be able to change their votes after editing if they like.  
> **username_0**: @MichaelHomer -- I may have to answer my own question in order to handle it properly.  How do I do that, since the question has been closed, and I can no longer add an answer?  
> **username_1**: Once the question is reopened from the review queue after editing, you'll be able to post an answer to it (and so will other people who have one, too).  
> **username_3**: @MicroservicesOnDDD Please stop using the word "religious" as a pejorative term. There are certainly religious people in this community and you're going to have to get along with them if you want to be here.  
> **username_0**: @kaya3-supportthestrike -- Sorry. Perhaps you didn't know that [Software Development is a Religion](https://blog.codinghorror.com/software-development-its-a-religion/amp/)  ... "But software development is, and has always been, a religion. We band together into groups of people who believe the same things, with very little basis for proving any of those beliefs. Java versus .NET. Microsoft versus Google. Static languages versus Dynamic languages. We may kid ourselves into believing we're "computer scientists", but when was the last time you used a hypothesis and a control to prove anything?"  
> **username_1**: If they don’t comprehend your edits then you’d need to make the question more comprehensible so that they did, and then they could vote to say the original close reasons were resolved. The comprehension is the key part of that. It’s usually better to have a single coherent question (as though it were asked that way in the first place) rather than labelled edits or responses within the body, but up to you how to put it. People are generally pretty keen to reopen things here. You have seen this process before on other sites on the network, so you have experience with how it works already.  
> **username_3**: @MicroservicesOnDDD You appear to have confused your ability to receive an answer to your question from volunteers on a website, with a fundamental liberty which must not be removed without due process. On the contrary, the fundamental liberty of freedom of association is what allows us to form a community and set our own standards as a community. Currently, more than half of your question is an argument about the question itself (i.e. meta-commentary), which makes this a very easy call ─ it does not meet our standards.  
> **username_4**: I think the edits have made the question worse rather than better. I would like to second Michael Homer's earlier comment that it's hard to understand *why* this term is important to define. A clear description of why the meaning of the term matters/is of interest to you and others would go a long way towards making this a viable question.  
> **username_0**: @Isaiah -- I will work on the question to do what you ask.  
---
## 2 answers
### Answer by username_3 on 2023-07-30. Score: 7
This is subject to interpretation ─ as [Wikipedia](https://en.wikipedia.org/wiki/Very_high-level_programming_language) notes, the term's original meaning is not really distinct from what we now call a "high-level language":

> The term VHLL [Very High-Level Language] was used in the 1990s for what are today more often called high-level programming languages (not "very") used for scripting, such as Perl, Python, php, Ruby, and Visual Basic.

This would apply to SETL, too, which was "originally developed in the late 1960s". I don't think many people would describe SETL as "very high-level" by contemporary standards.

---

If the term "very high-level" means anything today, I would argue that it means languages in which programs describe *problems* rather than *solutions*, and the language's implementation uses an algorithm to solve problems written in the language. This means that very high-level languages are declarative (the programmer writes declarations) rather than imperative (the programmer writes instructions).

Still, not all declarative languages are "very high-level" by this interpretation ─ the declarations must describe a problem rather than a solution to a problem ─ though that's debatable in many cases, and may depend less on the language than what program you are writing in that language. That said, I would say most functional languages aren't "very high-level" because to the extent that a functional program describes a problem, the language's implementation "solves" it simply by evaluating expressions, rather than some algorithm like a backtracking search.

My interpretation is obviously not one that everyone else will necessarily agree with, though it does coord with Wikipedia's description that

> VHLLs are usually domain-specific languages, limited to a very specific application, purpose, or type of task [...] For this reason, very high-level programming languages are often referred to as goal-oriented programming languages.

Examples of what I would call very high-level languages include [logic programming](https://en.wikipedia.org/wiki/Logic_programming) languages, [constraint programming](https://en.wikipedia.org/wiki/Constraint_programming) languages, and perhaps some [query languages](https://en.wikipedia.org/wiki/Query_language).
> **Comments:**
> **username_3** (2023-07-30): @MicroservicesOnDDD Forth is a "[procedural, stack-oriented programming language](https://en.wikipedia.org/wiki/Forth_(programming_language))", in the [concatenative programming](https://en.wikipedia.org/wiki/Concatenative_programming_language) paradigm ─ functional languages [are characterised by](https://en.wikipedia.org/wiki/Functional_programming) their function definitions being *"trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program"*; Forth is not that.  
> **username_3** (2023-07-30): @MicroservicesOnDDD I'm sure you have, and I'm sympathetic to your view that Forth is a functional language ─ at the same time, I would rather use words and terms the way that they are generally understood, since my answer here is not addressed to you individually, but to everyone on this site interested enough to read it.  
> **username_3** (2023-07-30): @MicroservicesOnDDD Your view that Forth is a functional language is a view, an interpretation, not a truth. It is also not a widely-held interpretation. If you want to make the case for it as a truth then of course, do so, but this comment thread is not a suitable venue for such a campaign.  
> **username_3** (2023-07-30): Comments should be used to request clarification or propose improvements; I have already clarified that I am using the term "functional programming" in the way that term is normally understood, which is also the way the term is described on the Wikipedia page I linked to, and I do not think editing my answer to use that term as if it has a different meaning would improve my answer. It is not interesting to me to debate whether the term *should* mean something different to what everybody else understands it to mean.  
> **username_3** (2023-08-01): @MicroservicesOnDDD The truth is that when everybody else says the words "functional programming language", they don't mean Forth, and when they read the words "functional programming language", they don't think it includes Forth. Your opinion that people *should* use the term to mean a different thing to what they do use it to mean, is not a truth, it is a proposal which you are campaigning for. But it is not a proposal which will improve my answer here, as I have already told you. Now please stop imagining that you need to explain the concept or value of truth to me for any reason.  
> **username_6** (2023-08-01): @MicroservicesOnDDD Please don’t have extended discussions in the comments, and certainly do not have extended discussions by deleting your comments shortly after posting them. kaya3 has been quite reasonable.  
---
### Answer by username_5 on 2023-07-31. Score: 4
I can't put this any better than David Parnas:

> It is so common to hear phrases such as "high level language", "low
> level language" and "linguistic level" that it is necessary to
> comment on the relation between the implied language hierarchy and the
> hierarchies discussed in the earlier sections of this paper. It would
> be nice, if, for example, the higher level languages were the
> languages of the higher level "abstract machines" in the program
> hierarchy. Unfortunately, this author can find no such relation and
> cannot define the hierarchy that is implied in the use of those
> phrases. In moments of scepticism one might suggest that the relation
> is "less efficient than" or "has a bigger grammar than" or "has a
> bigger compiler than", however, none of those phrases suggests an
> ordering, which is completely consistent with the use of the term. It
> would be nice, if the next person to use the phrase "higher level
> language" in a paper would define the hierarchy to which he refers.
>
> * David Lorge Parnas, *On a `Buzzword': Hierarchical Structure*, IFIP Congress 1974: 336-339.
> **Comments:**
> **username_0** (2023-07-31): Are you saying 1. The authors of SETL shouldn't use the term without context, or 2. I should not be asking about the term without context.  I would say the context is abstraction, but I don't know SETL, so I can't say. It could be the set-based nature. Wish I knew. Thanks for your contribution.  
> **username_5** (2023-07-31): I'm doing two things: 1) Sharing an important piece of software engineering lore. 2) Pointing out that any answer depends on how you interpret the question. I don't know what the SETL authors mean by that, but it sounds suspiciously like a marketing term, rather than referring to anything objective or technical.  
> **username_0** (2023-08-01): Regardless if it was used as a marketing term, we as programmers are reprehensibly passive if we allow others to define our important terms for us. If we want to produce better software, we have to do better with our own tools -- use our words more deliberately, use our words more properly, and define our important terms explicitly and without unnecessary compromise.  So marketing used it.  The real question is, **how should WE use it!**  
---
