# Structured English

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Structured_English
> Markdown URL: https://mediated.wiki/source/Structured_English.md
> Source: https://en.wikipedia.org/wiki/Structured_English
> Source revision: 1337633797
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

'''Structured English''' is the use of the [English language](/source/English_language) with the [syntax](/source/programming_language_syntax) of [structured programming](/source/structured_programming) to communicate the design of a [computer program](/source/computer_program) to non-technical users by breaking it down into logical steps using straightforward English words. Structured English gives aims to get the benefits of both the programming logic and natural language: program logic helps to attain precision, whilst natural language helps with the familiarity of the spoken word.<ref>"[https://www.wisegeek.com/what-is-structured-english.htm#didyouknowout "What is Structured English"], Wisegeek.com, retrieved 23 April 2014</ref>

It is the basis of some programming languages such as SQL (Structured Query Language) "for use by people who have need for interaction with a large database but who are not trained programmers".<ref>[http://cis.csuohio.edu/~matos/notes/cis-611/Papers/Implementation%20of%20a%20structured%20English%20query%20language-astrahan.pdf "Implementation of a Structured English Query Language"] M.M. Astrahan and D.D. Chamberlain, IBM Research Division, San Jose, ACM, May 1975 (retrieved from Cleveland State University website, April 2014)</ref>

== Elements ==
'''[https://dailyvocabshay.blogspot.com/2022/12/advanced-english-structure-pdf.html Advanced English Structure]''' is a limited-form "[pseudocode](/source/pseudocode)" and consists of the following elements:
#Operation statements written as English phrases executed from the top down
#Conditional blocks indicated by keywords such as IF, THEN, and ELSE
#Repetition blocks indicated by keywords such as DO, WHILE, and UNTIL

The following guidelines are used when writing Structured English:<ref>[https://it.toolbox.com/blogs/enterprise-solutions/guidelines-for-structured-english-in-documenting-specifications-15987 "Guidelines for Structured English in Documenting Specifications"], Craig Borysowich, IT Toolbox, 29 April 2007</ref>
#All logic should be expressed in operational, conditional, and repetition blocks
#Statements should be clear and unambiguous
#Logical blocks should be indented to show relationship and hierarchy
#Use one line per logical element, or indent the continuation line
#Keywords should be capitalized
#Group blocks of statements together, with a capitalized name that describes their function and end with an EXIT.
#Underline words or phrases defined in a [data dictionary](/source/data_dictionary).
#Mark comment lines with an asterisk

== Example of Structured English ==
APPROVE LOAN
 IF customer has a Bank Account THEN
    IF Customer has no dues from previous account THEN
       Allow loan facility
    ELSE
       IF Management Approval is obtained THEN
          Allow loan facility
       ELSE
         Reject
       ENDIF
    ENDIF
 ELSE
    Reject
 ENDIF
 EXIT

==Criticism==
Though useful for planning programs, modules and routines, or describing algorithms it is less useful when numerous decisions need to be made.<ref>[http://www.hit.ac.il/staff/leonidM/information-systems/ch60.html#Heading3 "Ch. 60 Structured English, Strengths and Weaknesses"], The Information Systems: Analysis and Design, Meyzin Leonid, Holon Institute of Technology, retrieved 23 April 2014</ref>

=== Other specification tools ===
System processes at a lower level involve lot of computations and require more precision and clarity. This can be achieved with tools such as [decision tree](/source/decision_tree)s or [decision table](/source/decision_table)s.

==See also==
*[Natural language programming](/source/Natural_language_programming)
*[Self-documenting code](/source/Self-documenting_code)
*[Structured programming](/source/Structured_programming)
*[Pseudocode](/source/Pseudocode)
*[Decision tree](/source/Decision_tree)
*[Decision table](/source/Decision_table)
*[Controlled natural language](/source/Controlled_natural_language)

==References==
{{Reflist}}

Category:Structured English
Category:Algorithm description languages

---
Adapted from the Wikipedia article [Structured English](https://en.wikipedia.org/wiki/Structured_English) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Structured_English?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
