Outline of question+justification soon to be expanded:
- Managing Complexity is job #1
- Abstraction is our #1 tool
- A VHLL does abstraction best
- So VHLL's should be our aim
- 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.
- A VHLL can be measured by functionality per word
- 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 :
- 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?
Not many programming languages claim to be a "very high-level language". Yet the 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".
And I'm impressed with Factor by Slava Pestov, which seems to implement the object oriented paradigm better than most languages.
I was highly impressed with LINQ, and was wondering if its ability to handle sets qualifies it as being very high level?
In particular, what makes SETL a very high level language?
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?
There seems to be a 22-video 2022 conference called the Logic and Practice of Programming 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?
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.)
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.
- The problem I am trying to solve is defining (or redefining) an important term to Software Engineering and Software Development
- 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).
- 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.
- 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, 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.