Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Spreadsheet
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Programming issues == Just as the early programming languages were designed to generate spreadsheet printouts, programming techniques themselves have evolved to process tables (also known as spreadsheets or [[matrix (mathematics)|matrices]]) of data more efficiently in the computer itself. === End-user development === Spreadsheets are a popular [[end-user development]] tool.<ref name="Empowering Users">{{cite web|url=http://www.uxmatters.com/mt/archives/2009/08/empowering-users-to-create-their-own-software.php|title=Empowering Users to Create Their Software|author=Peter Hornsby}}</ref> EUD denotes activities or techniques in which people who are not professional developers create automated behavior and complex data objects without significant knowledge of a programming language. Many people find it easier to perform calculations in spreadsheets than by writing the equivalent sequential program. This is due to several traits of spreadsheets. *They use [[Space|spatial]] relationships to define program relationships. Humans have highly developed [[intuition (knowledge)|intuitions]] about spaces, and of dependencies between items. Sequential programming usually requires typing line after line of text, which must be read slowly and carefully to be understood and changed. *They are forgiving, allowing partial results and functions to work. One or more parts of a program can work correctly, even if other parts are unfinished or broken. This makes writing and debugging programs easier, and faster. Sequential programming usually needs every program line and character to be correct for a program to run. One error usually stops the whole program and prevents any result. Though this user-friendliness is a benefit of spreadsheet development, it often comes with an increased risk of errors. *Modern spreadsheets allow for [[secondary notation]]. The program can be annotated with colors, typefaces, lines, etc. to provide visual cues about the meaning of elements in the program. *Extensions that allow users to create new functions can provide the capabilities of a [[functional language]].<ref name="excel">{{cite web | title=Improving the world's most popular functional language: user-defined functions in Excel | first1=Simon | last1=Peyton Jones |author-link1=Simon Peyton Jones |first2=Margaret |last2=Burnett|author2-link=Margaret Burnett |first3=Alan |last3=Blackwell |author-link3=Alan Blackwell | url=http://research.microsoft.com/~simonpj/Papers/excel/index.htm |date=March 2003 |archive-url=https://web.archive.org/web/20051016011341/http://research.microsoft.com/~simonpj/Papers/excel/index.htm |archive-date=2005-10-16}}</ref> *Extensions that allow users to build and apply models from the domain of [[machine learning]].<ref name=spreadsheet_machinelearning>{{cite book|last1=Sarkar|first1=Advait|last2=Blackwell|first2=Alan|last3=Jamnik|first3=Mateja|last4=Spott|first4=Martin|title=2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) |chapter=Teach and try: A simple interaction technique for exploratory data modelling by end users |pages=53β56|doi=10.1109/VLHCC.2014.6883022|year=2014|isbn=978-1-4799-4035-6|citeseerx=10.1.1.695.2025|s2cid=14845341}}</ref><ref>{{Cite book|date=2015-10-01|pages=159β163|doi=10.1109/VLHCC.2015.7357211|first1=A.|last1=Sarkar|first2=M.|last2=Jamnik|first3=A.F.|last3=Blackwell|first4=M.|last4=Spott|title=2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) |chapter=Interactive visual machine learning in spreadsheets |isbn=978-1-4673-7457-6|s2cid=17659755}}</ref> *Spreadsheets are versatile. With their [[Boolean logic]] and graphics capabilities, even [[electronic circuit design]] is possible.<ref name="haynes1985fall">{{cite news | url=https://archive.org/stream/byte-magazine-1985-11/1985_11_BYTE_10-11_Inside_the_IBM_PCs#page/n145/mode/2up | title=Circuit Design with Lotus 1-2-3 | work=BYTE | date=Fall 1985 | access-date=19 March 2016 | author=Haynes, John L. | pages=143β156}}</ref> * Spreadsheets can store [[relational model|relational data]] and spreadsheet formulas can express all queries of [[SQL]]. There exists a query translator, which automatically generates the spreadsheet implementation from the SQL code.<ref>{{Cite journal|title=Translating Relational Queries into Spreadsheets|journal=IEEE Transactions on Knowledge and Data Engineering|date=2015-02-02|volume=27|issue=8|pages=1041β4347|doi=10.1109/TKDE.2015.2397440|first1=J.|last1=Sroka|first2=A.|last2=Panasiuk|first3=K.|last3=Stencel|first4=J.|last4=Tyszkiewicz|arxiv=1305.2103|s2cid=13415694}}</ref> === Spreadsheet programs === A '''''"spreadsheet program"''''' is designed to perform general computation tasks using spatial relationships rather than time as the primary organizing principle. It is often convenient to think of a spreadsheet as a mathematical [[graph theory|graph]], where the [[node (graph theory)|nodes]] are spreadsheet cells, and the edges are references to other cells specified in formulas. This is often called the dependency graph of the spreadsheet. References between cells can take advantage of spatial concepts such as relative position and absolute position, as well as named locations, to make the spreadsheet formulas easier to understand and manage. Spreadsheets usually attempt to automatically update cells when the cells depend on change. The earliest spreadsheets used simple tactics like evaluating cells in a particular order, but modern spreadsheets calculate following a minimal recomputation order from the dependency graph. Later spreadsheets also include a limited ability to propagate values in reverse, altering source values so that a particular answer is reached in a certain cell. Since spreadsheet cell formulas are not generally invertible, though, this technique is of somewhat limited value. Many of the concepts common to sequential programming models have analogs in the spreadsheet world. For example, the sequential model of the [[For loop|indexed loop]] is usually represented as a table of cells, with similar formulas (normally differing only in which cells they reference). Spreadsheets have evolved to use [[Scripting language|scripting]] programming languages like [[Visual Basic for Applications|VBA]] as a tool for extensibility beyond what the spreadsheet language makes easy.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Spreadsheet
(section)
Add topic