Chapter 12

  [1]Page HistoryLast edited by PBworks 8 years, 6 months ago

                        FRIENDLY PROGRAMMING

   Software industry  must be  a miracle  - a  miracle that  would
   embody the vision of a quick and easy programming.

                                                        Tom Manuel

              HYBRID programming languages ??DRAGON SI

  Suppose  you  want  to  build  a  system  on  a  hybrid   visual
  programming language DRAGON-SR. The  problem can be solved,  for
  example, by  means of  three  programs: the  dragon-editor,  the
  dragon-converter and the C compiler. The user with the help of a
  dragon-editor draws on the  computer program in DRAGON-SR  (Fig.
  90, the right  of the graph).  Then a dragon-converter  converts
  the internal  representation  of  graphic codes  in  C  language
  source code (Fig. 90, the middle of the graph), after which  the
  standard C compiler converts the source code into object code.

  To better  understand the  benefits  of language  DRAGON-SR,  we
  perform mentally reverse  conversion. As can  be seen from  Fig.
  90, when  converting the  text  of the  program source  code  in
  visual  C  program  is   divided  into  two  parts.   Assignment
  statements, conditional expressions, and declarative description
  of almost no changes are  transferred to the visual program  and
  placed it  inside  the  icons. The  remaining  tekstoelementy  C
  language (which may be called  to remove or "parasitic")  become
  unnecessary, becoming a graphic lines and keywords are "yes" and
  "no" (yes and no).  Figure 90 shows that  the list of  parasitic
  (deleted) elements C language is impressive: it includes all the
  keywords in Examples 1-7 except thedefault, all curly,  circular
  and oblique brackets, colon, tags, comments in Examples 3-5, and
  furthermore of semicolons in Examples 2, 3, 7 and 6 in part.

  Thus, in  order to  build a  language-SEA DRAGON,  according  to
  certain rules need to connect the visual syntax of a dragon with
  text syntax of  the C  language, removing  the last  of all  the
  elements whose functions are realized visual operators DRAGON. A
  couple of the C language and the dragon-SI is equivalent in  the
  sense that it can  be built converter  performs both direct  and
  inverse transformation. This  converter can  convert the  source
  code in the  language of DRAGON-SR  (Fig. 90, the  right of  the
  graph) to the equivalent C program  (Fig. 90, the middle of  the
  graph), and vice versa.

  Create any hybrid language (for example, a dragon-SI) can hardly
  be considered original  work since  the latter  is almost  fully
  preserves the concept, structure, data types, and other features
  of  the  source   language  (SI).  Correct   to  say  that   the
  construction of a  hybrid language (DRAGON  SI) is technique  in
  which in  a  strictly defined  number  of cases  of  the  source
  language text notation is replaced by the visual. However,  this
  technique can significantly improve  the ergonomic shape of  the
  source language.

                         Pidgin PROGRAMMING

  DRAGON Modules

  Referring to the  above example  in Fig. 91.  The middle  column
  shows program in Modula-2, on the right - the equivalent program
  in DRAGON modules. The  left column is a  list of keywords  that
  are used in the module-program and are "vital" for the  language
  module, but which do not need to program dragon.

  From an ergonomic point of  view, these and many other  keywords
  present in the text-based languages, there is nothing more  than
  a visual disturbance, attracting the attention of the reader and
  distract his attention from the substantive aspect of the  case.
  Ergonomic advantage of  the Dragon is  that instead of  keywords
  used by  the  visual  image  that is  perceived  by  the  reader
  unconsciously, on an intuitive level, while conscious  attention
  channel operates more  efficiently - for  the perception of  the
  most important, substantive aspects of the problem.

                   EXAMPLE ergonomic optimization

  PROGRAMS

  Fig. 91 (at the bottom, in the middle column) program is written
  in Pascal. Acting similarly to  the previous example, it can  be
  easily converted to a program in PASCAL dragon. To do this, draw
  a visual statement "fork" and the icon "issue" put the record

                           K = 1 OR K = 2

  Lower output icon "question"  mark the word  "yes" and join  him
  switch with two icons "option" and the right way (the answer  is
  "no") is connected to the  icon "withdrawal" in which top  write
  WRITELN, bottom  - ERROR.  As  a result,  we obtain  the  Dragon
  scheme, which is  undoubtedly a completely  correct solution  of
  the problem. (For  clarity, we recommend  the reader to  perform
  the construction on paper.)

  But now  change the  conditions  of the  problem. Let's  try  to
  create a program that would not only be equivalent to the Pascal
  program in  Fig.  91,  and  an  ergonomically  optimal  for  the
  Russian-speaking  reader.  Seeking  a  program  written  in  the
  language of the  Dragon 2  is shown in  the same  figure at  the
  bottom right.

  Striking structural  difference  between  the  programs.  Pascal
  program    contains    two    constructs:    if-then-else    and
  case-of.Ergonomic optimization is that  the dragon program  uses
  only one visual operator (the switch with three options),  which
  nevertheless "alone" performs the same function as the two  text
  operator Pascal. As a result, a complex condition K = 1 OR K = 2
  and other  excesses  Pascal  programs are  eliminated,  and  the
  dragon diagram is considerably  simplified and becomes  laconic,
  clear and elegant.

                          Dialog programs

  We continue the presentation of  one of the possible  approaches
  to building  a programming  language  DRAGON-2. Once  again,  we
  recall that the reader will not find here the description of the
  language. Our  goal  is  much  more modest:  to  show  that  the
  formalization of the syntax of  the language of the text  DRAGON
  is feasible, and to give a few examples to prove this point.

  Consider interactive program in Fig. 92 and 93, having  improved
  teaching (teaching) properties. To do this, use an extensive set
  of ergonomic tools.  In particular, during  filling of the  icon
  "comment" is  used  zoning  text. Text  comments  to  facilitate
  understanding of spatially  divided into two  zones, which  are,
  firstly,  have  a   clearly  defined   and  easily   discernible
  boundaries, and secondly, a different color background (gray and
  white). The gray  area is placed  the text that  appears on  the
  computer screen  in  white  - explaining  to  him.  Delimitation
  between the text of the explanatory comments easier to read  and
  improve their comprehensibility.

  Ergonomic reception  "zoning text"  is useful  not only  in  the
  comments, but in other cases, such as input-output statements.

                         Operator "Message"

  Operator "message" is used to display information on a  computer
  screen. It  contains the  icon "withdrawal",  on the  top  floor
  which  put  the  keyword  "Message"   at  the  lower  -   output
  information. In describing the final text of the zoning applies:
  in the gray  zone write  variable names  or expressions  (values
  ??should be displayed on the  screen), a white zone -  permanent
  information (which is displayed  unchanged). Newline is a  black
  circle. For example, in Fig.  92 using the "Message" appears  on
  the  screen,  the  phrase  "sum  of  the  numbers  is"  and  the
  expression m + n.

                         Operator "Request"

  Operator "Request" shall enter into the computer the values ??of
  variables, display fixed information, variable names and  values
  ??entered. In  the upper  part  of the  icon "input"  write  the
  keyword  "Query"  at   the  bottom  -   the  input  and   output
  information. There is also  present zoning of  the text: in  the
  gray area indicate the names of the variables to be entered into
  the computer, in white - put a constant information.

  Suppose you want to enter the values  ??m = 23 and n = 45  (Fig.
  92). This is done,  for example, as the  cursor is fed into  the
  zone m, type in the number  23 and press the "carriage  return."
  Wherein m area on the  screen disappears and instead the  number
  of turns 23. The value of n is introduced analogously. Thus, the
  operator "Query"  prompts the  user  variables, stores  them  in
  memory, and simultaneously displays on the screen along with the
  constant information (if the latter  is available on the  ground
  floor of the operator "Query" in the white zone).

                          Data Description

  For a description of the data  is the icon of "shelf".  Upstairs
  write the keyword "data"  at the bottom -  a description of  the
  data. For example, in Fig.  92 in the icon "regiment"  indicated
  that the variables m and n are of the type "a."

  You can offer  another way: data  description endure beyond  the
  dragon-circuit and placed in a separate table.

                                IDs

  Here are the rules for writing identifiers.

    * The length of the identifier 1 ... 32 characters.
    * Permission is granted to use any of Russian and Latin
      letters, numbers, periods, and may have special characters.
    * The first character must be a letter (not a digit and not
      the point).
    * Inside the identifier may not use spaces.
    * Words must be separated by dots, to facilitate reading.
    * Do not use the contraction of the words, if the length of
      the ID is less than 32 characters.
    * If the length of the identifier more than 32 characters, it
      is necessary to replace certain words or abbreviations to
      reduce the number of words.
    * We must strive to come up with intelligible identifiers make
      it easy to understand the meaning of the concept, so that
      the reader quickly understand the essence.

                        Examples of valid ID

  Nomer.vagona.skorogo.poezda

  Nomer.vagona.passazhir.poezda

  Tsena.bileta.poezdom.do.Magadana

  Tsena.bileta.samolet.do.Magadana

                  Examples of invalid identifiers

  Nomer.vagona.passazhirskogo.poezda (Here 33 symbols,and can be
                                     no more than 32)
  Chislo.vagonov freight train       (Spaces are used)
                                     (There are two mistakes:First
  3 y.zapusk.avariynogo.nasosa       symbol - the figure; In
                                     addition, there is a hyphen)

      An example of reducing the length of the complex concept

  Suppose you  want  to create  an  identifier for  the  following
  notion: "The radius  vector of the  center of the  Earth at  the
  center  of  the  runway  in  the  landing  coordinates."  Verbal
  description of the concept contains 92 characters. The aim is to
  reduce the  92-character  description  of  up  to  32-character,
  retaining as much as possible a clear sense of the concept.

  Reducing spend on the following schedule:

    * "The radius vector of the center of the Earth" substitute
      "Radius.zemli."
    * Instead of "In the center of the runway," write "na.polose."
    * "The landing coordinate system" is replaced by the CPM, as
      this reduction is commonly used in the collective
      development of the system.

  As a result, we obtain a 26-character identifier

                     Radius.zemli.na.polose.PSK

  which retains nearly all the key words of the original  concepts
  and provides a relatively high comprehensibility.

    Record rules of arithmetic expressionsassignment statements

  We must distinguish two cases.  If the expression is simple,  it
  is recommended to use a 32-character identifiers, and "vertical"
  record mathematical formulas, as shown in Fig. 94 and 95.

  However, when it comes to complex mathematical calculations, the
  method described is not suitable as a "vertical" formula with  a
  32-character identifiers  do not  allow the  reader to  see  the
  mathematical structure calculations, diverting his attention  to
  reading long identifiers  that, paradoxically,  turn out  useful
  tips into its  opposite and  begin to  play a  negative role  of
  visual interference. Thus, there is an ergonomic impasse:  short
  identifiers do not allow you  to quickly understand the  meaning
  of  concepts  and  long  -  obscure  the  structure  of  complex
  formulas.

  As one  of  the possible  approaches  to the  outbreak  of  this
  Gordian knot can be offered a three-point plan.

    * For each mathematical concept provides two identifiers: a
      long (32-character) and short (alias).
    * In arithmetic expressions are used only aliases, which makes
      the structure of formulas transparent.
    * ? In the beginning of the program provides an icon
      "comment", which houses a table of correspondences between
      aliases and long identifiers. This table serves as a crib,
      which is in the same field of vision with assignment
      operators and allows you to quickly recall, which means that
      one or another alias.

                          Array processing

  Fig. 94 and 95 are examples of programs that have operations  on
  arrays.

  Data description  located  on  the  ground  floor  of  the  icon
  "regiment."

  Record               ARRAY VESCH Ves.krolika [2]100

  It  means  that  the  specified  one-dimensional  array   called
  "Ves.krolika" containing 100 elements, each  of which is a  real
  number.

  The main element of both programs is the cycle for. Consider the
  rules of registration cycle. In  the icon "start cycles for"  in
  the top  line of  writing the  word "cycle"  and after  a  space
  one-character alias, indicating the loop variable (the letter  k
  in Fig. 94, 95). The bottom line indicates the range of  change,
  for example,

                         from k = 1 to 100

  But what stands for the letter  k? What is the physical  meaning
  of the loop variable in the application program? The authors  of
  many programs forget (or do not consider it necessary) to answer
  this question, with the result that the program often turns into
  a puzzle.  To avoid  this, in  the middle  line should  write  a
  formal comment, for example,

                     k = Nomer.krolichey.kletki

  = identically equal sign shows that after followed by the  name,
  comment, t.  E. Comment  that  is written  by the  rules  record
  identifiers.

  Ergonomic "fat" formal comment  involves two advantages.  First,
  it eliminates the traditional "forgetfulness" of programmers and
  humanly explain to the reader the meaning of abstract ID: say, k
  - is  the  number  of rabbit  cages.  Second,  importantly,  the
  explanation is placed  on the drawing  exactly where needed  (in
  the icon "start cycle for"), on the principle of "expensive  egg
  to the  day of  Christ."  This means  that  the reader  gets  an
  instant response -  at the  very moment  when he  first saw  the
  alias k and glimmer in his mind a question: What is k?

  The icon of the "end of cycle for the" record

                     End cycle (loop variable)

  The meaning of the operators  that organize array processing  is
  clear from Fig. 94 and 95 and requires no explanation.

                      ABSTRACT DRAGON diagram

  In this section we will look at the transformation of the visual
  language program  DRAGON-2 in  the  text program  in  BASIC.This
  transformation is  useful  in two  ways:  it will  allow  deeper
  visualization to  understand  the essence  and  learn  important
  concept abstract dragon scheme.

  As an example, take a school program called "Igra.ugadayka"  and
  write it  in the  language  of the  Dragon  2 (Fig.  96).  Then,
  completely eliminate it from the  text and get the  drawing-mole
  rat, which is called "abstract  dragon diagram" (Fig. 97).  This
  scheme is an invariant of the program, which can be converted in
  two steps in the program in any programming language.

  We choose as the target language BASIC and get down to business.
  The first step is to fill the empty icon abstract schema text in
  the language  BASIC. The  result is  the equivalent  program  in
  BASIC-DRAGON (Fig. 98).  In the  second step we  pass to  normal
  BASIC program (we deliberately  chose the old-fashioned  version
  of BASIC to demonstrate the use for a variety of goto statements
  when describing equivalent dragon program) - see. Fig. 99.

                   Philosophy of language DRAGON

  Any imperative language (C, Pascal, ADA, modules, BASIC, and  so
  on. D.)  Can  be  divided into  three  parts,  three  relatively
  independent language: routing, command and declarative.

  Trip language -  a set of  control statements. Command  language
  contains all the non-control statements, such as the  assignment
  operator,  the  rules   for  writing   arithmetic  and   logical
  expressions, identifiers,  keywords,  and so  on.  D.Declarative
  language used to describe data, and other classes.

  Let us illustrate this with an example. Abstract dragon  diagram
  shown in Fig. 97, there is some "words" Shuttle language.To make
  it meaningful, icons should be placed within the text. This text
  is written in the command language. However, the description  of
  data classes and sometimes it is advisable to make the scope  of
  the dragon-circuit and put them somewhere else, such as a single
  record or table.

  Hence the principle  of differentiation  of three  sublanguages.
  Trip language  - the  language  of "pictures"  (abstract  dragon
  schemes  in  which  the  text  is  completely  absent).  Command
  language used to write text  inside dragon scheme declaratory  -
  for those records that can be taken outside its borders.

  Constructing another language  dragon family, you  can select  a
  team and  declarative sublanguages  ??in any  way (by  borrowing
  from other languages, or inventing anew). This provides a wealth
  of features  dragons  and  flexible  configuration  for  various
  applications. Thus, the dragon family  has only one hard link  -
  trip language  that is  none other  than the  visual  components
  DRAGON (visual syntax and semantics).

  Trip language - a visual standard dragon family, dragon supports
  visual editor  (see.  Ch.  14),  which  is  small  and  easy  to
  remember.  He  is  a  constant  hallmark  of  the  Dragon,   its
  standardized visual image (Fig. 97).

                    CLASSIFICATION OF KNOWLEDGE

  Every program has a  certain amount of  knowledge, which can  be
  separated into  an  imperative and  declarative  part.The  above
  considerations make it  possible to clarify  this thesis. A  new
  approach to  the problem  is presented  in Fig.  And 100  is  as
  follows:

    * ? To analyze the knowledge contained in the source code of a
      computer program written in an imperative language, it is
      advisable to use two classifications: basic and alternative.
      / Li>
    * Basic classification is that all the knowledge contained in
      the initial program, split into declarative and imperative.
    * In turn, the imperative of knowledge are divided into
      control and command.
    * As a criterion for the alternative classification proposed
      question: what tools are best used for knowledge
      representation - graphics or text?
    * The answer is as follows. To present knowledge of Governors
      is better to use the schedule (Block language) for command
      and declarative knowledge - text.
    * Thus, in the alternative classification of knowledge is
      divided into visual (control), and text (command and
      declarative).

  Finally add: the use of the  text for submission to the  complex
  control of knowledge seems as absurd as an attempt to describe a
  map in words.  The fact  that the text  is still  used for  this
  purpose, can  be explained  only one:  the programming  is  much
  younger than geography!

                            CONCLUSIONS

   1. If we now have a formal visual syntax, for the construction
      of a visual programming language is sufficient to construct
      a formal text syntax. We are convinced that this problem is
      quite solvable, and in several ways. The end result, a
      family of programming languages ??as the original (the
      dragon-2), and hybrid (DRAGON-SR-DRAGON modules DRAGON
      Pascal, BASIC and dragon t. H.).
   2. It can be argued that the comprehensibility of visual
      languages ??is significantly higher than the
      comprehensibility of their text counterparts. Therefore, in
      all cases where the comprehensibility is regarded as the
      main criterion for the quality of programs (and there are a
      lot of cases), visual languages ??are out of competition. It
      is appropriate caveat: the very term "visually" does not
      guarantee anything. Business success is achieved through a
      thorough and rigorous application of the science of human
      factors (ergonomics). To be more precise, it is a synthesis
      of methods of computer science and ergonomics, the formation
      of a new interdisciplinary direction - infoergonomiki, the
      restructuring of the building of modern programming
      ergonomic basis.
   3. The creation of any programming language, the next
      generation must begin with an analysis of ergonomic
      requirements and end with evaluation of the ergonomic
      features of the language. One of the main obstacles to the
      implementation of this plan is the inertia of thinking of
      many experts, an underestimation of the importance of
      ergonomic methods. To change the stereotypes of thinking,
      you need to make major changes in the program and methods of
      teaching of computer science in schools and universities.

References

  Visible links
  1. https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=ru&tl=en&u=http://drakon.pbworks.com/w/page-revisions/18205499/%25D0%2593%25D0%25BB%25D0%25B0%25D0%25B2%25D0%25B0%252012&usg=ALkJrhgogU4OZcCHouHFNED_IOmb86HwvQ
  2. https://translate.googleusercontent.com/translate_c?depth=1&hl=en&rurl=translate.google.com&sl=ru&tl=en&u=http://drakon.pbworks.com/100&usg=ALkJrhj1cDmt9IytyWBQy68h23or1_9HxQ