Character String Types
Design Issues: Operations in Ada: C, C++:    use char array to store strings and string terminated by NULL.
                 This is alternative to maintaining the length of string variables.
                (header files:  string.h  or  string  (library functions: strcpy, strcmp, strlen and operator overload) )
FORTRAN, BASIC    treat strings as a primitive type.
JAVA      String class and StringBuffer class
               In Java, strings are supported as a primitive type by the String class, whose values are constant strings,
               and the StringBuffer class, whose values are changeable and are more like arrays of single characters.
               Subscripting is allowed on StringBuffer variables.
SNOBOL4, Perl      pattern match   (see page 240)
                                Patten matching is provided by library function rather than an operation in other languages.

String Length

static length                                  FORTRAN, COBOL, Pascal, Ada, Python, Java's String class
limited dynamic length                 C, C++   (Do not check range of index, there is null at the end)
dynamic length                             JavaScript, SNOBOL4, Perl  (Use Linked List or Adjacent Storage Cells to implement)
Descriptor (Compile Time Descriptor, Run-Time Descriptor) has three fields:  (See figures 6.2 and 6.3 on page 229)

Dynamic length strings require more complex storage management. (allocation and de-allocation take time.)