Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0. Introduction #2

Open
lg6s opened this issue Sep 8, 2018 · 4 comments
Open

0. Introduction #2

lg6s opened this issue Sep 8, 2018 · 4 comments
Assignees
Labels
Milestone

Comments

@lg6s
Copy link
Member

lg6s commented Sep 8, 2018

符号是一种思考的工具

Kenneth E. Iverson
IBM Thomas J. Watson Research Center

The importance of nomenclature, notation, and language as tools of thought has long been recognized.
人们早已认识到命名、符号、语言作为思维工具的重要性。

In chemistry and in botany, for example, the establishment of systems of nomenclature by Lavoisier and Linnaeus did much to stimulate and to channel later investigation.

例如,在化学和植物学中,拉瓦锡 和 林奈 建立的命名系统在很大程度上促进和引导了后来的研究。

Concerning language, George Boole in his Laws of Thought asserted
“That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted.”
关于语言,乔治布尔曾在他的《思维定律/The Laws of Thought》中[1, p.24]写道:语言是一种人类理性的工具,而不仅仅是表达思想的媒介;这是一种普遍承认的真理。


@lg6s
Copy link
Member Author

lg6s commented Sep 8, 2018

Mathematical notation provides perhaps the best-known and best-developed example of language used consciously as a tool of thought. Recognition of the important role of notation in mathematics is clear from the quotations from mathematicians given in Cajori’s A History of Mathematical Notations [2, pp.332,331]. They are well worth reading in full, but the following excerpts suggest the tone:

By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and in effect increases the mental power of the race. -- A.N. Whitehead

The quantity of meaning compressed into small space by algebraic signs, is another circumstance that facilitates the reasonings we are accustomed to carry on by their aid. -- Charles Babbage

Nevertheless, mathematical notation has serious deficiencies. In particular, it lacks universality, and must be interpreted differently according to the topic, according to the author, and even according to the immediate context. Programming languages, because they were designed for the purpose of directing computers, offer important advantages as tools of thought. Not only are they universal (general-purpose), but they are also executable and unambiguous. Executability makes it possible to use computers to perform extensive experiments on ideas expressed in a programming language, and the lack of ambiguity makes possible precise thought experiments. In other respects, however, most programming languages are decidedly inferior to mathematical notation and are little used as tools of thought in ways that would be considered significant by, say, an applied mathematician.

@lg6s
Copy link
Member Author

lg6s commented Sep 8, 2018

The thesis of the present paper is that the advantages of executability and universality found in programming languages can be effectively combined, in a single coherent language, with the advantages offered by mathematical notation. It is developed in four stages:

(a) Section 1 identifies salient characteristics of mathematical notation and uses simple problems to illustrate how these characteristics may be provided in an executable notation.

(b) Sections 2 and 3 continue this illustration by deeper treatment of a set of topics chosen for their general interest and utility. Section 2 concerns polynomials, and Section 3concerns transformations between representations of functions relevant to a number of topics, including permutations and directed graphs. Although these topics might be characterized as mathematical, they are directly relevant to computer programming, and their relevance will increase as programming continues to develop into a legitimate mathematical discipline.

(c) ection 4 provides examples of identities and formal proofs. Many of these formal proofs concern identities established informally and used in preceeding sections.

(d) The concluding section provides some general comparisons with mathematical notation, references to treatments of other topics, and discussion of the problem of introducing notation in context.

@lg6s
Copy link
Member Author

lg6s commented Sep 8, 2018

The executable language to be used is APL, a general purpose language which originated in an attempt to provide clear and precise expression in writing and teaching, and which was implemented as a programming language only after several years of use and development [3].

Although many readers will be unfamiliar with APL, I have chosen not to provide a separate introduction to it, but rather to introduce it in context as needed. Mathematical notation is always introduced in this way rather than being taught, as programming languages commonly are, in a separate course. Notation suited as a tool of thought in any topic should permit easy introduction in the context of that topic; one advantage of introducing APL in context here is that the reader may assess the relative difficulty of such introduction.

However, introduction in context is incompatible with complete discussion of all nuances of each bit of notation, and the reader must be prepared to either extend the definitions in obvious and systematic ways as required in later uses, or to consult a reference work. All of the notation used here is summarized in Appendix A, and is covered fully in pages 24-60 of APL Language [4].

Readers having access to some machine embodiment of APL may wish to translate the function definitions given here in direct definition form [5, p.10] (using ⍺ and ⍵ to represent the left and right arguments) to the canonical form required for execution. A function for performing this translation automatically is given in Appendix B.

@lg6s lg6s mentioned this issue Sep 8, 2018
@lg6s lg6s added the d草稿 label Sep 8, 2018
@lg6s lg6s added this to the preview milestone Sep 8, 2018
@lg6s
Copy link
Member Author

lg6s commented Sep 8, 2018

回头把引用也搬过来。尾注太远,改成脚注,近一点。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants