Is Excel a programming language?

Asked

Viewed 7,637 times

26

No, I’m not asking for an opinion. I’m asking this question here because today I found this unlikely question:

HTML is a programming language?

And, I confess, I voted in favour of the second comment (image below) of the main answer:

Comentários

So the question is one, but I think it holds a small division:

  • To minimum theoretical machine of Turing is the only (or most accepted) way to determine what a programming language is?

  • So, according to Turing, is Excel really a programming language? (If the answer to the first question is in the negative, state according to which method you based your answer).

  • Software like Excel , Crystal Reports etc are in a "limbo" between a Programming Language is software that can be programmed , the answer will be DEPENDS , depends on how to define an LP.

  • But isn’t the way to define an LP something definite? Apart from the Turing method, which other method can be applied? @Motta

  • I don’t know, will we have to have this definition ? Software that accepts voice command is "programming language," I say, the voice command ?

  • 1

    But this type of discussion is not the focus of this site.

  • So @Motta, I see it as an objective question. It’s either or it’s not.

  • @Motta voice command is a data input, that’s it.

  • 2

    If you call the language of formulas, like, SE(), SOMA(), etc Excel, I would say yes. If you say that Excel is just a "shell" and inside has an anonymous language, with the functions SE(), SOMA(), etc., I would say that such a thing, perhaps without a proper name, is a programming language, and Excel is the IDE. Nor will I enter the merit of VBA, because I understand to be something outside the scope of the question. VBA is a programming language, but it is an Excel accessory. You can use Excel, program inside it, and not pass near VBA.

  • 1

    It is software. And, the most dangerous in the world.

Show 3 more comments

5 answers

35


What defines what a programming language is?

You will find several settings. In Wikipedia:

A programming language is a standardized method for communicating instructions to a computer.1 It is a set of syntactic and semantic rules used to define a computer program.2

[Note 1] Allows a programmer to specify precisely what data a computer will act on, how this data will be stored or transmitted, and what actions should be taken under various circumstances. Programming languages can be used to accurately express algorithms.

If we continue reading the article (same in English) we will find various information that helps define what is expected of a programming language and even its various classifications. We note that we cannot stick to the classic way we know languages like C, Java, C#, Javascript, PHP, etc.

Excel fits these settings.

One of the criteria for defining whether a language is programming can be whether it is Turing Complete. This is the only objective criterion I know to define whether the language has full programming capability. Some people may disagree. I have never found a canonical and definitive definition that indicates this. I have also never seen anything plausible to indicate that this is not a good criterion.

If there is an objective criterion, more subjective criteria are obviously not good for deciding something. Someone knows a better criterion?

So I keep thinking how can someone in their right mind consider that software that can solve any computational problem in a fully programmable way without needing outside help might not be a programming language? It is more controversial to say that SQL (default) is a programming language, because there are problems that it cannot solve.

So Excel (and not VBA, which is obviously also) is a programming language. If you disagree, ok. It won’t change anyone’s life. But, if possible, demonstrate where there is a flaw in this definition. I never found.

Some places where this is discussed:

21

I believe that some concepts are being mixed up:

  • Programming language
  • Turing machine
  • Excel
  • Functions of Excel

In my opinion the Wiki has a good definition of what a programming language is:

A programming language is a standardized method for communicating instructions to a computer.1 It is a set of syntactic and semantics used to define a computer program.2 [Note 1] Allows a programmer to specify precisely what data a computer will act, as these data will be stored or and which actions should be taken under several circumstances.

Turing machine is any mechanism that repeats a sequence of instructions indefinitely. This is a given simplification of the resource that the OP made available, with my emphasis:

Every Turing machine computes a certain partial computable function fixed from a string as input formed by the symbols of its alphabet

When someone refers to Excel he usually refers to the program and its practical usefulness, but not so much to the functions made available.

The functions of Excel yes, form a programming language, because they respect the above-mentioned definition. I draw particular attention to the existence of functions capable of flow control as the function If.

And most likely, it is also a Turing Complete programming language, i.e., it may be possible for a program to run a particular set of instructions indefinitely. Otherwise, the existence of macros makes it unquestionably.

10

I don’t consider the Excel one Programming Language, i consider an IDE for VBA development, as well as Access which is an IDE for VBA and also an SGDB. Microsoft Office Excel is a spreadsheet editor

There is a difference between programming language and IDE or command interpreter!

Since 1993, Excel has included Visual Basic for Applications (VBA), a programming language based on Visual Basic that adds the ability to automate tasks in Excel and provide user-defined functions (UDF)for use in workbooks.

VBA is a powerful add-on to the application that, in later versions, includes an integrated development environment (IDE, Integrated Development Environment). Writing macros can produce VBA code that replicates user actions, thus allowing simple automation of everyday tasks. VBA allows the creation of forms and controls within the workbook for communication with the user. The language supports the use (but not the creation) of Dlls Activex (COM); later versions added support for class modules, allowing the use of basic object-oriented programming techniques (POO).

  • So Junior, but what’s the difference between programming language and IDE or command interpreter, and why is Excel, which meets all requirements, not a programming language? The last two paragraphs of the answer explain the VBA functions, but do not explain why Excel (which meets(??) the requirements of the minimum Turing virtual machine), is not a programming language, and I think this goes through explaining the difference between programming language and IDE or command interpreter...

  • Access has more potential to be a programming language than Excel, Programming language edited the answer with a good definition! IDE will say it is a program capable of creating/developing programs using programming languages, I give you as an example Notepad, with it you can create HTML pages, PHP among others, it is as if it were a Web IDE! Just like Word that also has access to VBA.

  • A detail, you can create a spreadsheet editor that accepts terms and patterns of formulas, as well as works Excel, and would not be creating a new language!

10

The routines in Excel are provided by VBA.

VBA, yes, is a programming language.

Excel, in short, is just a spreadsheet. We can say that it is a calculator.

So the question is almost how to tell if a calculator is a programming language.

It is something similar between HTML and Javascript. HTML is not a programming language. It is a text markup language, as its name says.

Who gives life, automation, etc, to HTML, is the programming language Javascript.

It is similar also between Flash and Action Script, or Autocad and LISP.

In short, to understand whether or not something is a programming language, just understand the definition of "Programming language".

Some answers from other colleagues mention the subject.

-4

In my opinion YES, a file . xlsx can contain a programming language depending on what it is able to execute. Just look for several scientific articles that feature software developed in Excel (out there widely accepted as Spreadsheet Programs) (http://www.sciencedirect.com/science/article/pii/S0098300410000531; http://www.sciencedirect.com/science/article/pii/S009830040900274X) Excel is an IDE that, among other things, allows the user to create algorithms that combine logical, mathematical, statistical functions, etc. proper to Excel even without VBA programming, and can therefore generate a file (.xlsx) that can be considered a software (although this software is dependent on the IDE itself where it was created to run). Therefore, in practice, several current software (software that no one questions has its own programming language since it was developed in C++, R, VB, Java, Pascal, etc.) can be easily replaced by spreadsheets. And what would be the language of a Spreadsheet Program? Note that Excel uses programming elements from several other languages, appropriating terms and logic for creating algorithms similar to other Ides. The language, therefore, is proper. It could be mentioned only as Excel language. I do not know if there is a more usual standard way to mention this language. If you need the code (verbatim) just check the "show formulas" option in Excel and save the file as . XML in a notepad. There will be the extensive list of formulas of all cells of the Spreadsheet program created.

  • 1

    If following the logic that generating another file is motivation to be a programming language, then the program fsutil (Windows) or the touch (Linux) would also be "languages". Generating files containing something is not unique language ability, I think you should seek to read about "Turing Complete", or even better, to make it easier to read the answers that already exist in the question and not based on "achism" (when it says "I think" or "in my opinion").

Browser other questions tagged

You are not signed in. Login or sign up in order to post.