You can view a spreadsheet as a program for a FunctionalProgrammingLanguage.
Also see "Improving the world's most popular functional language: user-defined functions in Excel" (2002, available at http://www.research.microsoft.com/~simonpj/papers/excel/index.htm) by SimonPeytonJones, MargaretBurnett? and AlanBlackwell
http://www.research.microsoft.com/~simonpj/papers/excel/excel.pdf

[From TheMostWidelyUsedProgrammingLanguageAtAnyLevel]*It's not really a language, is it? Don't all Microsoft products have VisualBasic as their scripting language?*
MicrosoftExcel can be considered a ProgrammingLanguage, even without VBA (VisualBasicForApplications). VBA lets you script Excel, but Excel (and actually, most decent spreadsheets) itself gives many of the features of other programming languages. It's all wrapped in a spreadsheet-centric framework, but it doesn't require much to see the parallels.
MicrosoftExcel is not a language, it is a COM component (API). It provides direct support for being used and extended with VBA, including a complete IDE. However, it is accessible from any environment that can access COM. If we apply any precision to the term "programming language", then Excel is not one. Likewise with the rest of MicrosoftOffice.
*You can create Excel spreadsheets that perform conditional and iterative computation. How is that different from a programming language?*
If MicrosoftExcel is a computer language, is it TuringComplete?
*Any spreadsheet is, approximately. You can implement a TuringMachine as a one-dimensional CellularAutomaton, which can be implemented as a SufficientlyLarge spreadsheet with all cells except the first row filled with an appropriate calculation. The width of the spreadsheet is the length of available tape and the height of the spreadsheet is the maximum time available for the computation.*
I am extremely pleased to find that Excel can invoke user created VBA functions in a formula. For an example of Excel doing iterations (without VBA) see http://people.revoledu.com/kardi/tutorial/Excel/Iteration.html
Excel, and other application in the Spreadsheet Paradigm absolutely represent a programming language.
If you remove UDFs (user defined functions) that are coded in a diference language and circular references (which are generally banned for production spreadsheets in area like finance, and for good reason) then spreadsheets are not Turing complete.
The number of people programming with spreadsheets, often referred to as Modelling, is mostly large by an order of magnitude then all other programming paradigms put together (see http://web.engr.oregonstate.edu/~cscaffid/papers/eu_20050923_vlhcc.pdf).
Put in the context of formal languages and the the SapirWhorfHypothesis (or BlubParadox) the vast majority of people programming are being forced to be dumb.

The "COM component" comment above is definitely wrong. MicrosoftExcel does in fact have its own macro language! However, this is now deprecated. But even leaving that out of consideration, the spreadsheets form a language environment on their own, and a lot of code exists using them. In fact, a main reason why spreadsheet-heavy environments are pains to support is that state and calculations wind up being split in an arbitrary fashion between the spreadsheet, VBA code, and underlying DLLs.*What's the WikiWord for alternating hard and soft layers?* -- BenTremblay
AlternateHardAndSoftLayers.

See also ExcelAsProjectScheduler

CategoryProgrammingLanguage CategoryFunctionalProgramming

[From TheMostWidelyUsedProgrammingLanguageAtAnyLevel]

The "COM component" comment above is definitely wrong. MicrosoftExcel does in fact have its own macro language! However, this is now deprecated. But even leaving that out of consideration, the spreadsheets form a language environment on their own, and a lot of code exists using them. In fact, a main reason why spreadsheet-heavy environments are pains to support is that state and calculations wind up being split in an arbitrary fashion between the spreadsheet, VBA code, and underlying DLLs.

See also ExcelAsProjectScheduler

CategoryProgrammingLanguage CategoryFunctionalProgramming

EditText of this page (last edited July 11, 2012) or FindPage with title or text search