Skip to content

Commit e9c5ac5

Browse files
authored
Try to Fix line breaks in Foreword.md (#1258)
* Try to Fix line breaks in Foreword.md * Forgot em
1 parent 454e38a commit e9c5ac5

1 file changed

Lines changed: 8 additions & 58 deletions

File tree

frontend/docs/scripting/language/reference/01-Foreword.md

Lines changed: 8 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,80 +3,30 @@
33
---
44

55
“pawn” is a simple, typeless, 32-bit “scripting” language with a C-like syntax.
6-
Execution speed, stability, simplicity and a small footprint were essential
7-
design
8-
criterions for both the language and the interpreter/abstract machine that a
9-
pawn program runs on.
6+
Execution speed, stability, simplicity and a small footprint were essential design criterions for both the language and the interpreter/abstract machine that a pawn program runs on.
107

118
An application or tool cannot do or be everything for all users.
129
This not
1310

14-
other software systems, it also explains the presence of extensive configuration
15-
options and macro or scripting languages in applications. My own applications
16-
have contained a variety of little languages; most were very simple, some were
17-
extensive. . . and most needs could have been solved by a general
18-
purpose
19-
language with a special purpose library. Hence, pawn.
11+
other software systems, it also explains the presence of extensive configuration options and macro or scripting languages in applications. My own applications have contained a variety of little languages; most were very simple, some were extensive. . . and most needs could have been solved by a general purpose language with a special purpose library. Hence, pawn.
2012

21-
The pawn language was designed as a flexible language for manipulating ob-
22-
jects in a host application. The tool set (compiler, abstract machine)
23-
were
24-
written so that they were easily extensible and would run on different
25-
soft-
26-
ware/hardware architectures.
13+
The pawn language was designed as a flexible language for manipulating objects in a host application. The tool set (compiler, abstract machine) were written so that they were easily extensible and would run on different software/hardware architectures.
2714

2815
##
2916

30-
pawn is a descendent of the original Small C by Ron Cain and James Hendrix,
31-
which at its turn was a subset of C. Some of the modifications that I did to
32-
Small C, e.g. the removal of the type system and the substitution of pointers by
33-
references, were so fundamental that I could hardly call my language a “subset
17+
pawn is a descendent of the original Small C by Ron Cain and James Hendrix, which at its turn was a subset of C. Some of the modifications that I did to Small C, e.g. the removal of the type system and the substitution of pointers by references, were so fundamental that I could hardly call my language a “subset of C” or a “C dialect” anymore. Therefore, I stripped off the “C” from the title and used the name “Small” for the name of the language in my publication in Dr. Dobb’s Journal and the years since. During development and maintenance of the product, I received many requests for changes. One of the frequently requested changes was to use a different name for the language —searching for information on the Small scripting language on the Internet was hindered by “small” being such a common word. The name change occurred together with a significant change in the language: the support of “states” (and state machines).
3418

35-
of C” or a “C dialect” anymore. Therefore, I stripped off the “C” from the title
36-
and used the name “Small” for the name of the language in my publication in
37-
Dr. Dobb’s Journal and the years since. During development and maintenance
38-
of the product, I received many requests for changes. One of the frequently
39-
requested changes was to use a different name for the language —searching
40-
for information on the Small scripting language on the Internet was hindered
41-
by “small” being such a common word. The name change occurred together
42-
with a significant change in the language: the support of “states” (and state
43-
machines).
44-
45-
I am indebted to Ron Cain and James Hendrix (and more recently, Andy
46-
Yuen), and to Dr. Dobb’s Journal to get this ball rolling. Although I must
47-
have touched nearly every line of the original code multiple times, the Small
48-
C origins are still clearly visible.
19+
I am indebted to Ron Cain and James Hendrix (and more recently, Andy Yuen), and to Dr. Dobb’s Journal to get this ball rolling. Although I must have touched nearly every line of the original code multiple times, the Small C origins are still clearly visible.
4920

5021
##
5122

5223
---
5324

54-
A detailed treatise of the design goals and compromises is in appendix C; here
55-
I would like to summarize a few key points. As written in the previous para-
56-
graphs, pawn is for customizing applications (by writing scripts), not for writ-
57-
ing applications. pawn is weak on data structuring because pawn programs
58-
are intended to manipulate objects (text, sprites, streams, queries, . . . ) in
59-
the
60-
host application, but the pawn program is, by intent, denied direct access to
61-
any data outside its abstract machine. The only means that a pawn program
62-
has to manipulate objects in the host application is by calling subroutines, so
63-
called “native functions”, that the host application provides.
25+
A detailed treatise of the design goals and compromises is in appendix C; here I would like to summarize a few key points. As written in the previous paragraphs, pawn is for customizing applications (by writing scripts), not for writing applications. pawn is weak on data structuring because pawn programs are intended to manipulate objects (text, sprites, streams, queries, . . . ) in the host application, but the pawn program is, by intent, denied direct access to any data outside its abstract machine. The only means that a pawn program has to manipulate objects in the host application is by calling subroutines, so called “native functions”, that the host application provides.
6426

65-
pawn is flexible in that key area: calling functions. pawn supports default val-
66-
ues for any of the arguments of a function (not just the last),
67-
call-by-reference
68-
as well as call-by-value, and “named” as well as “positional” function argu-
69-
ments. pawn does not have a “type checking” mechanism, by virtue of being
70-
a typeless language, but it does offer in replacement a “classification
71-
checking”
72-
mechanism, called “tags”. The tag system is especially convenient for function
73-
arguments because each argument may specify multiple acceptable tags.
27+
pawn is flexible in that key area: calling functions. pawn supports default values for any of the arguments of a function (not just the last), call-by-reference as well as call-by-value, and “named” as well as “positional” function arguments. pawn does not have a “type checking” mechanism, by virtue of being a typeless language, but it does offer in replacement a “classification checking” mechanism, called “tags”. The tag system is especially convenient for function arguments because each argument may specify multiple acceptable tags.
7428

75-
but in their combination. For pawn, I feel that the combination of named ar-
76-
guments —which lets you specify function arguments in any order, and default
77-
values —which allows you to skip specifying arguments that you are not inter-
78-
ested in, blend together to a convenient and “descriptive” way to call (native)
79-
functions to manipulate objects in the host application.
29+
but in their combination. For pawn, I feel that the combination of named arguments —which lets you specify function arguments in any order, and default values —which allows you to skip specifying arguments that you are not interested in, blend together to a convenient and “descriptive” way to call (native) functions to manipulate objects in the host application.
8030

8131
---
8232

0 commit comments

Comments
 (0)