2

I am looking for an adjective with regard to computer programming, which says that a program language is not abstract, but very clear and intuitive or even overly "non-computerish".

I saw this word once in a blog post regarding the logo programming language, but cannot find it anymore. By the way, English is not my native language.

For example, C++ would be like:

#include <iostream>

 int main() {
     std::cout << "Hello, world!\n";
     return 0;
 }

While logo would be:

Say "Hello World!"

Maybe it is a term used in programming and someone perhaps know which adjective I mean!?

  • Maybe en.wikipedia.org/wiki/Pseudocode. – user2768 Nov 8 '17 at 11:45
  • @user2768 That's how the language is written; it's not pseudocode. – Laurel Nov 8 '17 at 17:21
  • The OP is looking for a word that "says that a program language is not abstract, but very clear and intuitive or even overly 'non-computerish.'" As discussed (english.stackexchange.com/a/417547/265710), such languages might be termed high-level. But, I'm unconvinced that's what the OP is looking for. Indeed, C++ and logo might well both be termed high-level, hence the term cannot distinguish the two. Although you're right that logo is indeed written as above, I'm not sure we can really call it a programming language. It's language could nonetheless be referred to as pseudocode. – user2768 Nov 8 '17 at 17:26
2

Programming languages are usually separated into "levels" based on how close to the machine you really get - see this Stack Exchange article for the real details but most people would instinctively understand that "high-level" languages are declarative and close to human language (e.g. Visual Basic, Python, Perl) and "low-level" languages are closer to the machine and further from human language (e.g. C, C++, Assembler).

Of course there are many graduations (and generations) of languages but sticking to high-level and low-level should be enough in most circumstances.

EDIT: Where I say "most people" above, I mean of course "most programmers/technical people"; I had assumed that the adjective was to be used among people who would understand the concept of levels and that may well have been an unwarranted assumption. If so - sorry.

1

The adjective high-level is used in this context, because it

may use natural language elements

You're flipping the traditional use of "abstract" in this context. Normally the high-level language is an abstraction from the chip's internal instruction set to a set of human-like commands. So

MOV AX, BX

is the less abstract than

ax = bx;

which is less abstract than

let dinner = "sushi";

This is because AX and BX refer to actual registers in the chip, the stuff of microprocessor design, and as little as a single byte of code specifying which circuit in the chip to run. The latter examples require a compiler, lookup tables for variable names, and other mechanisms to make that abstraction into something concrete the chip can do.

  • High-level doesn't necessarily permit a distinction between C++ and logo. – user2768 Nov 8 '17 at 12:25
  • @user2768. Yes, these are relative scales, which is the best one can hoep for,. The term "a lot" wouldn't distinguish between $1 million and $1 billion--both are "a lot" to pay for a sandwich, and "not a lot" for a GDP. If I choose a language much higher level than logo, I change the scale and C++ and logo look low level. If I choose machine language and assembly, both are high level. – jimm101 Nov 8 '17 at 21:19
0

High-level programming languages abstract away from "the details of the computer" (quote from Wikipedia). But C++ and logo are both high-level languages, hence they cannot be distinguished using such terminology. Thus, the OP might like to consider the term pseudocode, which

uses structural conventions of programming language, but is written for humans rather than machines. Hence, it omits details that are necessary for machines, e.g., which includes the vast majority of the C++ code listed above. Moreover, pseudocode permits informal natural language descriptions and mathematical notation to aid readability. Thus pseudocode is easier for people to understand than conventional programming language code.

(Adapted from http://en.wikipedia.org/wiki/Pseudocode.)

-1

Based on the scanty details in the question, it is hard to guess what is meant. One thing that comes to mind is natural language programming (not to be confused with other concepts that share the abbreviation NLP (*)). Wikipedia defines natural language programming as "an ontology-assisted way of programming in terms of natural language sentences, e.g. English". One example is Ring, in which you can write code such as Put "Hello, World!".

However, the concept you are looking for could also be functional programming (language), since Logo is an example of a functional programming language that also happens to be very readable.

(*) Natural language programming is not the same thing as natural language processing, as some uncareful readers seem to assume.

  • 2
    Natural language processing refers to code that interprets languages such as English, not the programming language itself. One could write a natural language processor in assembly language. Functional programming refers to a language that attempts to avoid side-effects caused by mutating an underlying state by using declarative statements. There are plenty of languages that can be clear and intuitive without being functional, such as python. – jimm101 Nov 8 '17 at 12:03

protected by tchrist Nov 12 '17 at 2:53

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.