Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Computer Languages I. Variety This compiler/script classification is actually pointless since Many languages now exist in both forms. It gives no indication to the capabilities of the languages. We do it this way only because it may appear to be the most significant feature to a novice. Tutorials can be found here: http://www.findtutorials.com/ A. Compiler Languages a. BASIC (Beginners All purpose Symbolic Instruction Code) A programming language developed by John Kemeny and Thomas Kurtz in the mid 1960s at Dartmouth College. Originally developed as an interactive, mainframe timesharing language, it has become widely used on small computers. BASIC is available in both compiler and interpreter form. As an interpreter, the language is conversational and can be debugged a line at a time. BASIC is also used as a quick calculator. BASIC is considered one of the easiest programming languages to learn. Simple programs can be quickly written on the fly. However, BASIC is not a structured language, such as Pascal, dBASE or C, and it's easy to write spaghetti code that's difficult to decipher later. The following BASIC example converts Fahrenheit to Celsius: 10 INPUT "Enter Fahrenheit "; FAHR 20 PRINT "Celsius is ", (FAHR-32) * 5 / 9 b. C A high-level programming language developed at Bell Labs that is able to manipulate the computer at a low level like assembly language. During the last half of the 1980s, C became the language of choice for developing commercial software. C can be compiled into machine languages for almost all computers. For example, UNIX is written in C and runs in a wide variety of micros, minis and mainframes. C, as well as C++, are written as a series of functions that call each other for processing. Even the body of the program is a function named "main." Functions are very flexible, allowing programmers to choose from the standard library that comes with the compiler, to use third party functions from other C suppliers, or to develop their own. Compared to other high-level programming languages, C appears complicated. Its intricate appearance is due to its extreme flexibility. C was standardized by ANSI (X3J11 committee) and ISO in 1989. See Turbo C, Borland C++, Microsoft C and Visual C++. The Origin of C C was developed to allow UNIX to run on a variety of computers. After Bell Labs' Ken Thompson and Dennis Ritchie created UNIX and got it running on several PDP computers, they wanted a way to easily port it to other machines without having to rewrite it from scratch. Thompson created the B language, which was a simpler version of the BCPL language, itself a version of CPL. Later, in order to improve B, Thompson and Ritchie created C. The following C example converts fahrenheit to centigrade: main() float fahr; { printf("Enter Fahrenheit "); scanf("%f", &fahr); printf("Celsius is %f\n", (fahr-32)*5/9); } The DOS Version in C Following is the main event loop in the first software engine used for this Encyclopedia. Written in Turbo C, the main loop of an interactive program repeats continuously, testing all possible menu selections, keystrokes and mouse clicks that the user may enter. The WHILE (1) statement below creates a continuous loop. An instruction at the END OF EVENT LOOP points to the beginning of the loop. The names with double parentheses are the names of subroutines, for example, bookmark(). When bookmark() is called, the instructions in the bookmark function set the bookmark and control is returned to the BREAK. The BREAK ends the loop in order to start over at the beginning. /*********** MAIN EVENT LOOP **********/ while (1) /* BEGINNING OF LOOP */ { while (!charwait()) if (mouse) testMOUSE(); if (mouse) { if (mouseDOWNinText) { mouseDOWNinText=0; CLICK=1; unHighLightALL(); } } key1=getch(); if (key1==0) /* get keystroke from keyboard */ /* if 0, a second character is */ { /* key2=getch(); required (key2) */ /* get second character switch (key2) { /* test contents of key2 */ case 59: HelpTopic=NO; HelpRoutine(); break; case 68: main_menu(); break; /* F1*/ /*F10*/ case 61: PrevHistory(); break; /* F3*/ case 62: NextHistory(); break; /* F4*/ */ case 63: bookmark(); case 64: findmark(); case 71: home_key(); case 79: end_key(); break; break; /* F5*/ /* F6*/ break; break; case 75: left_arrow(); break; case 77: left_arrow(); break; case 72: up_arrow(); break; case 80: down_arrow(); break; case 73: pageup(); break; case 81: pagedown(); break; case 132: ctrl_PgUp(); break; case 118: ctrl_PgDn(); break; } } else { switch (key1) { case 8: backspace(); case 9: left_arrow(); break; break; /*Tab*/ case 127: ctrl_bsp(); break; case 13: return_key(); break; case 27: escape_key(); break; case 2: bookmark(); break; case 6: findmark(); break; /*Ctrl-B*/ /*Ctrl-F*/ case 24: alldone(); /*Ctrl-X*/ case 17: alldone(); /*Ctrl-Q*/ default: dataentry(); break; } } } /** END OF EVENT LOOP **/ c. COBOL (COmmon Business Oriented Language) A high-level programming language that has been the primary business application language on mainframes and minis. It is a compiled language and was one of the first high-level languages developed. Officially adopted in 1960, it stemmed from Flomatic, a language in the mid 1950s. COBOL is a very wordy language. Although mathematical expressions can also be written like other programming languages (see example below), its verbose mode is very readable for a novice. For example, multiply hourly-rate by hours-worked giving gross-pay is self-explanatory. COBOL is structured into the following divisions: Division name IDENTIFICATION ENVIRONMENT DATA PROCEDURE Contains Program identification. Types of computers used. Buffers, constants, work areas. The processing (program logic). The following COBOL example converts a Fahrenheit number to Celsius. To keep the example simple, it performs the operation on the operator's terminal rather than a user terminal. IDENTIFICATION DIVISION. PROGRAM-ID. EXAMPLE. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. IBM-370. IBM-370. DATA DIVISION. WORKING-STORAGE SECTION. 77 FAHR PICTURE 999. 77 CENT PICTURE 999. PROCEDURE DIVISION. DISPLAY 'Enter Fahrenheit ' UPON CONSOLE. ACCEPT FAHR FROM CONSOLE. COMPUTE CENT = (FAHR- 32) * 5 / 9. DISPLAY 'Celsius is ' CENT UPON CONSOLE. GOBACK. IBM COBOLs In 1994, IBM dropped support of OS/VS COBOL, which conforms to ANSI 68 and ANSI 74 standards and limits a program's address space to 16 bits. IBM's VS COBOL II (1984) and COBOL/370 (1991) conform to ANSI 85 standards and provide 31-bit addressing, which allows programs to run "above the line." COBOL/370 is more compliant with AD/Cycle, has more string, math and date functions, including four-digit years, allows development through a PC window and provides enhanced runtime facilities. d. FORTRAN (FORmula TRANslator) The first high-level programming language and compiler, developed in 1954 by IBM. It was originally designed to express mathematical formulas, and although it is used occasionally for business applications, it is still the most widely used language for scientific, engineering and mathematical problems. FORTRAN IV is an ANSI standard, but FORTRAN V has various proprietary versions. The following FORTRAN example converts Fahrenheit to Celsius: WRITE(6,*) 'Enter Fahrenheit ' READ(5,*) XFAHR XCENT = (XFAHR - 32) * 5 / 9 WRITE(6,*) 'Celsius is ',XCENT STOP END e. LISP (LISt Processing) A high-level programming language used for developing AI applications. Developed in 1960 by John McCarthy, its syntax and structure is very different than traditional programming languages. For example, there is no syntactic difference between data and instructions. LISP is available in both interpreter and compiler versions and can be modified and expanded by the programmer. Many varieties have been developed, including versions that perform calculations efficiently. The following Common LISP example converts Fahrenheit to Celsius: (defun f-to-c (f) (* (- f 32) (float (/ 5 9)) ) ) (defun convert() (format t "Enter Fahrenheit ") (setf fa (read)) (format t "Celsius is ~a" (f-to-c fa) ) ) f. JAVA A programming language designed to generate applications that can run on all hardware platforms, small, medium and large, without modification. Developed by Sun, it has been promoted and geared heavily for the Web, both for public Web sites and intranets. Developed by Sun, Java was modeled after C++, and Java programs can be called from within HTML documents or launched stand alone. When a Java program runs from a Web page, it is called a "Java applet." When it is run on a Web server, it is called a "servlet." Java is an interpreted language. The source code of a Java program is compiled into an intermediate language called "bytecode," which cannot run by itself. The bytecode must be converted (interpreted) into machine code at runtime. Upon finding a Java applet, the Web browser invokes a Java interpreter (Java Virtual Machine) which translates the bytecode into machine code and runs it. This means Java programs are not dependent on any specific hardware and will run in any computer with the Java Virtual Machine software. On the server side, Java programs can also be compiled into machine language for fastest performance, but they lose their hardware independence as a result. The first Web browsers to run Java applications were Sun's HotJava and Netscape's Navigator 2.0. Java was designed to run in small amounts of memory and provides enhanced features for the programmer, including the ability to release memory when no longer required. This automatic "garbage collection" feature has been lacking in C and C++ and has been the bane of C and C++ programmers for years. Like other programming languages, Java is royalty free to developers for writing applications. However, the Java Virtual Machine, which executes Java applications, is licensed to the companies that incorporate it in their browsers and Web servers. Java and JavaScript Java is a full-blown programming language and is not intended for the casual programmer and certainly not the end user. JavaScript is a scripting language that uses a similar syntax as Java, but it is not compiled into bytecode. It remains in source code embedded within an HTML document and must be translated a line at time into machine code by the JavaScript interpreter. JavaScript is very popular and is supported by all Web browsers. JavaScript has a more limited scope than Java and primarily deals with the elements on the Web page itself. Java: A Revolution? Java was originally developed in 1991 as a language for embedded applications such as those used in set-top boxes and other consumer-oriented devices. It became the fuel to ignite a revolution in thinking when Sun transitioned it to the Web in 1994. Unlike HTML, which is a document display format that is continually beefed up to make it do more, Java is a full-blown programming language like C and C++. It allows for the creation of sophisticated applications. Thus far, Java applications have been mildly successful at the client side, but server-side Java applications have become very popular. Java's "write once-run anywhere" model has been one of the Holy Grails of computing for decades. As CPU speeds increase, they can absorb the extra layer of translation required to execute an interpreted language, and Java is expected by many to become a major computing platform in the 21st Century. See Java platform, servlet, JSP, Java 2, J2EE, Jini, network computer, CaffeineMark and caffeine based. The following Java example of changing Fahrenheit to Celsius is rather wordy compared to the C example in this database. Java is designed for GUI-based applications, and several extra lines of code are necessary here to allow input from a terminal. import java.io.*; class Convert { public static void main(String[]args) throws IOException { float fahr; StreamTokenizer in=new StreamTokenizer(new InputStreamReader(System.in)); System.out.print("Enter Fahrenheit "); in.nextToken(); fahr = (float) in.nval; System.out.println ("Celsius is " + 2)*5/9); } } Java Is Interpreted Java is not compiled into machine language for a specific hardware platform like programs written in C or C++ (top). It is compiled into an intermediate language called "bytecode." The bytecode program can be run by any hardware that has a Java Virtual Machine (Java interpreter) available for it. That's the "write once-run anywhere" model that makes Java so appealing. Java Runs on Clients and Servers When a Java program has been called by a Web page from the client machine, it is called an "applet." When it runs on the server, it's known as a "servlet." When running stand alone in a network computer (NC), it is known as a Java application rather than an applet. g. PASCAL A high-level programming language developed by Swiss professor Niklaus Wirth in the early 1970s and named after the French mathematician, Blaise Pascal. It is noted for its structured programming, which caused it to achieve popularity initially in academic circles. Pascal has had strong influence on subsequent languages, such as Ada, dBASE and PAL. Pascal is available in both interpreter and compiler form and has unique ways of defining variables. For example, a set of values can be stated for a variable, and if any other value is stored in it, the program generates an error at runtime. A Pascal set is an array-like structure that can hold a varying number of predefined values. Sets can be matched and manipulated providing powerful non-numeric programming capabilities. The following Turbo Pascal example converts Fahrenheit to Celsius: program convert; var fahr, cent : real; begin write('Enter Fahrenheit '); readln(fahr); cent := (fahr - 32) * 5 / 9; writeln('Celsius is ',cent) end. h. PL/I (Programming Language 1) A high-level IBM programming language introduced in 1964 with the System/360 series. It was designed to combine features of and eventually supplant COBOL and FORTRAN, which never happened. A PL/I program is made up of procedures (modules) that can be compiled independently. There is always a main procedure and zero or more additional ones. Functions, which pass arguments back and forth, are also provided. B. Script Languages a. AWK Aho Weinberger Kernighan) A UNIX programming utility developed in 1977 by Alfred Aho, Peter Weinberger and Brian Kernighan. Due to its unique pattern-matching syntax, awk is often used in data retrieval and data transformation. Awk is widely used to search for a particular occurrence of text and perform some operation on it. Awk is an interpreted language, which has been ported to other computing environments, including DOS. See Gawk. b. CGI (Common Gateway Interface script) A small program written in a language such as Perl, Tcl, C or C++ that functions as the glue between HTML pages and other programs on the Web server. For example, a CGI script would allow search data entered on a Web page to be sent to the DBMS (database management system) for lookup. It would also format the results of that search as an HTML page and send it back to the user. The CGI script resides in the server and obtains the data from the user via environment variables that the Web server makes available to it. CGI scripts have been the initial mechanism used to make Web sites interact with databases and other applications. However, as the Web evolved, server-side processing methods have been developed that are more efficient and easier to program. For example, Microsoft promotes its Active Server Pages (ASPs) for its Windows Web servers, and Sun/Netscape nurtures its Java roots with JavaServer Pages (JSPs) and servlets. See ASP, JSP, servlet and FastCGI. Web Server Evolution Starting at the top and moving down, this illustration shows Web and application server processing as it evolved initially using only CGI scripts and later using Java components. The separation of logic is portrayed here, and the Web server (HTTP server) and application server may reside in the same or different computers. c. JAVAScript A popular scripting language that is widely supported in Web browsers and other Web tools. It adds interactive functions to HTML pages, which are otherwise static, since HTML is a display language, not a programming language. JavaScript is easier to use than Java, but not as powerful and deals mainly with the elements on the Web page. On the client, JavaScript is maintained as source code embedded into an HTML page. On the server, it is compiled into bytecode (intermediate language), similar to Java programs. JavaScript evolved from Netscape's LiveScript language. First released with Navigator 2.0, it was made more compatible with Java. JavaScript does not have the programming overhead of Java, but can be used in conjunction with it. For example, a JavaScript script could be used to display a data entry form and validate the input, while a Java applet or Java servlet more thoroughly processes the information. JavaScript is also used to tie Java applets together. See JScript, Java, Java applet, servlet and VBScript. d. Perl (Practical Extraction Report Language) A programming language written by Larry Wall that combines syntax from several UNIX utilities and languages. Introduced in 1987, Perl is designed to handle a variety of system administrator functions and provides comprehensive string handling functions. It is widely used to write Web server programs for such tasks as automatically updating user accounts and newsgroup postings, processing removal requests, synchronizing databases and generating reports. Perl has also been adapted to non-UNIX platforms. See also PURL. e. PHP (PHP Hypertext Preprocessor) A scripting language used to create dynamic Web pages. With syntax from C, Java and Perl, PHP code is embedded within HTML pages for server side execution. It is commonly used to extract data out of a database and present it on the Web page. The major NT and UNIX Web servers support the language, and it is widely used with the mSQL database. PHP was originally known as "Personal Home Page." See mSQL f. Python http://www.python.org g. Shells Unix/Linux shells: Bourne shell. Bourne Again SHell. C shell. Korn shell. DOS shell 4DOS, 4OS2. h. VBScript (Visual Basic SCRIPT) A scripting language from Microsoft. A subset of Visual Basic, VBScript is widely used on the Web for both client processing within a Web page and server-side processing in Active Server Pages (ASPs). As an ActiveX scripting language, VBScript is also used with the Windows Script Host (WSH) to perform functions locally on a Windows machine. See JScript and ASP. II. Structures Program: Main, Subprogram. Order: Preprocessor, Declaration, Statements. 2. Syntax: Continuation, Case, Comments. File: external. Source Files-> Object Files a. Executables b. Libraries ( Static / Dynamic ) III. Variables A. Types Integers. Floating Points. Characters. Bits. Pointers. B. Modifiers Long, short, double, … C. Scopes Local global D. Duration Permanent. Transient. E. Declaration & Allocation F. Organized Arrays / Strings. Structures. Classes IV. Operators A. Arithmic +, -, *, /, % … B. Relational >, <, = =, … C. Logic &&, ||, ! D. Bitwise &, |, ^, <<, >>, ~ E. Miscellaneous + +, - -, ? :, … F. Precedence V. Flow Control A. Decision IF … THEN … ELSE. SWITCH … CASE. GOTO. B. Loop FOR. DO … END DO DO … WHILE BREAK, CONTINUE. VI. Functions Returned value. Arguments: Call by value, Call by reference. Variables: local, global, external. static, transient. Entry point, Return point. Recursive, Variable argument list. System Calls VII. Preprocessors #define #include VIII. I/O Files. Devices. Format. Buffer. Pipes & Filters IX. OOP http://vtopus.cs.vt.edu/~kafura/cs2704/Notes.html Classes & Objects: Data Encapsulation. Privacy & Friends. Operator Overload. Derivation and Inheritance. X. Functional Programming http://www.cs.nott.ac.uk/~gmh//faq.html#functional-languages A. Cumming: A Gentle Introduction to ML André van Meulebrouck’s Lambda Calculus Tutorial XI. Reflection http://tunes.org/Review/Reflection.html XII. GUI A. Visual Basic A version of the BASIC programming language from Microsoft specialized for developing Windows applications. When first released in 1991, Visual Basic was similar to Microsoft's QuickBASIC. By the mid 1990s, it became extremely popular. User interfaces are developed by dragging objects from the Visual Basic Toolbox onto the application form. Visual Basic (VB) is widely used to write client front ends for client/server applications. As of Version 5.0, it is also used to create ActiveX controls for the Web (both EXE's and DLL's). Visual Basic for Applications (VBA) is a subset that provides a common macro language included with many Microsoft applications. Up until VB 5, the Visual Basic compiler only converted the source code written by the programmer into an intermediate language called "bytecode." Starting with VB 5, native executable programs can be generated. No matter what the version, in order to run a VB program, the VB runtime module, must reside in the target computer. This .DLL file, named VBRUNxxx (up to VB 4) or MSVBVMxx (VB 5 and after), where x is the version number, contains necessary runtime libraries and also converts programs compiled to bytecode into the machine language of the computer. The runtime DLLs are widely available and typically accompany a Visual Basic application. See compiler and VBScript. Visual Basic Is Interpreted Visual Basic is similar to Java. It is compiled into an intermediate language called "bytecode." The bytecode is translated into x86 machine language by the Visual Basic runtime module. Starting with VB 5, native executable (.EXE files) can also be generated, but the runtime module, which provides necessary runtime functions, must still reside in the target computer. Tutorials: http://www.vbweb.co.uk/vb/ B. Visual C++ A C and C++ development system for DOS and Windows applications from Microsoft. It includes Visual Workbench, an integrated Windows-based development environment and Version 2.0 of the Microsoft Foundation Class Library (MFC), which provide a basic framework of object-oriented code to build an application upon. Introduced in 1993, the Standard Edition of Visual C++ replaces QuickC for Windows and the Professional Edition includes the Windows SDK and replaces Microsoft C/C++ 7.0. C. VisualAge A family of object-oriented application development software from IBM that includes VisualAge for Basic, VisualAge for C++, VisualAge for COBOL, VisualAge for Java, VisualAge for PacBase and VisualAge for Smalltalk. For example, VisualAge for C++ is a multiplatform environment for writing C++ applications for OS/2, Windows, AS/400, MVS/ESA, AIX and Solaris. It is widely used to write an application on one platform that will be used on another. Today, the skills of a VisualAge programmer are not implicit, as the term refers to several languages. In the past it implied one or two. The VisualAge name was first used in the late 1980s for Smalltalk, then in 1994 for C++ and later for all the others. Nevertheless, all the VisualAge languages are themselves written in IBM's Smalltalk. See Smalltalk. D. TCL/TK (Tool Command Language/ToolKit) Pronounced "tickle" or "ticklet," it is an interpreted script language that is used to develop a variety of applications, including GUIs, prototypes and CGI scripts. Created for the UNIX platform by John Ousterhout along with students at the University of California at Berkeley, it was later ported to PCs and Macs. Safe-Tcl is an enhanced Tcl interpreter that provides a secure, virus free environment. Tcl also provides an interface into compiled applications (C, C++, etc.). The application is compiled with Tcl functions, which provide a bi-directional path between Tcl scripts and the executable programs. Tcl provides a way to "glue" program modules together. The Tk part of Tcl/Tk is the GUI toolkit, which is used to create graphical user interfaces. Other languages, including Perl, Python and Scheme, have incorporated Tk as well. Starting Point: http://www.geocities.com/lvirden/tcl-faq/