COMPUTER LANGUAGES Analogy with natural languages:  Natural languages such as English, Telugu, Hindi, French, German, etc. Uses a set of words allowed in a language is called its vocabulary. Each word has definite meaning. Similarly the computer languages have its own vocabulary. Each word in the vocabulary has a definite unambiguous meaning that can be looked up in the manual of that language.  Natural languages have large vocabulary where as computer languages use a very limited or restricted vocabulary because the programming languages by its very nature and purpose does not need to say too much. i.e. every problem that can be solved by using computer has to be broken down into discrete (simple, separate ), logical steps basically comprising of 4 fundamental operations. Such as  I/P & O/P operation  Arithmetic operation  data movement operation within CPU & Memory  logical & comparison operations  In Natural languages, the grammar can be defined by systematic method of using words & symbols of the language. Whereas in case of computer programming languages must also be used as per the set of rules known as syntax rules of the language.  Natural languages use poor/incorrect vocabulary and grammar and still communicate his/her thoughts. Computer programming languages represents exactly to the syntax rules f the language, even down to punctuation marks, otherwise computer con not understand programmers instructions.  Over the years computer programming languages have progressed from machine language (i.e strings of 0's and 1's) to problem-oriented languages (that uses common mathematical and or English terms). However computer programming languages classified broadly into 3 categories.  Machine Language  Assembly Language  High- Level Language Nature and characteristics of these programming languages are different.

Machine Language: A program in machine understandable form of binary i.e 0's & 1's is called a machine language program. Or set of instructions written in binary code is called machine language program. Example of a machine language program is 1001 0001 0010 1100 0010 1110 0101 0011 1110 0010 0000 1111 1100 1000 1000 0010 Machine language program can also be written in decimal and hexadecimal or octal form as shown below 10001471 14002041 30003456 50773456 00000000

Here, 1001 is the binary code in a particular brand of computer for adding a number with the contents of Accumulator (AC). Because the memory addresses locations are different from one computer to another brand of computer. Above machine language program was run on VAX/VMS computers.VAX/VMS computers are 32-bit computers manufactured by DEC (Digital Equipment Corporation). The operating system of this computer may be UNIX, BSD, ultrix. VAX= Virtual Address Extension VMS= Virtual Memory System Example: IBM pc uses the memory address from 16532 to 19057 where as HP computer uses the memory address from 0 to 16532. Machine language program instruction is a combination of Opcode and Operand. Opcode = Operation Code Opcode: An opcode is portion of machine language instruction that specifies the operation to be performed. This specification and format are laid out in the instruction set architecture of the processor / CPU. The set of opcodes for a particular machine is called its instruction set. Each opcode in the instruction set is meant to perform specific basic operation or function. Operand: and operand is a quantity on which an operation code is performed. Example: in the addition of two numbers 9 and 1. i.e 9+1 here, 9 & 1 are operands + is opcode. In Machine language code example, an instruction is a combination of operation code an operands. 1001 0001 0010 1100

represents a single instruction

Instruction format in Machine languages: Each and every processor has its own Instruction set. But the instruction format of any processor is same as shown in the below diagram. Set of operation codes for a particular processor / CPU is called its Instruction set. Instruction set contains two parts as shown in below diagram. Each “opcode” in the instruction set is meant to perform specific basic operation or function.

Typical opcodes included in the instruction set of a computer are  Arithmetic operations  Logical operations  Branch operations (either conditional or unconditional for transfer of control to the address given in the operation field)  Data movement operations (for moving data between memory locations and register)  Data movement operations (for moving data from or to input and output devices). Two types of specifying the operand address in an instruction format are 1. Single address instruction format 2. Multiple address instruction format Some computers use single address instructions and some other uses multiple address instructions. Multiple address instruction schemes include addresses of 2 or more operands. Machine language program does not require any translation programs. Advantages:  A machine language instruction is directly and easily understands and executed by the CPU.  Machine language program code can run very fast. Disadvantages:  Machine independent  Difficult to program (not simple and easy to understand by programmers)  Error prone  Difficult to modify  Time consuming process to write program  Rarely used today  Programmer need to know instruction set of the processor / CPU.

Assembly language: These are the second generation computer language introduced in the year of 1952. It helps to overcome the limitations of machine language programming in the following manner.  This assembly language uses alphanumeric codes ( i.e Mnemonic) instead of numeric codes for the instructions in the instruction set. Example: ADD instead of 1110 (binary) or 14 (in decimal) SUB instead of 111 (binary) or 15 (in decimal)  Strings of characters / alpha numeric names are used to represents address of memory address locations instead of numeric addresses such as 1001,1002,1003...etc Example: ax, Ax, bx, Bx....etc With this features the programmer can easily remember similar to variable sin high level languages. Here no need of keep track of storage locations of the data and instructions while writing the Assembly language program i.e programmer need not to tell address of each memory locations that where to place each data item or instruction of a program.  Assembly language programming is also called a s Symbolic programming Mnemonics: an abbreviated opcode is called Mnemonic. Examples of subset of instructions supported by a computer are

Mnemonic Opcode Meaning HLT 00 Halt , used at the end of the program CLA 10 Clear and add into the register A ADD 14 Add the contents of register A SUB 15 Subtract from the contents of Register A STA 30 Store into Register A LOAD 50 Load register A with the given value A subset of set of instructions supported by a particular machine Here Mnemonic represents some memory location there can be more than 100 opcodes or Mnemonic for a machine. Examples of Assembly language program: Mnemonic LOAD A, 7

Comments load the register A with value 7

Register/location => A 7

LOAD B, 10

load register B with 10

=> B 10

ADD A, B

=> A

LOAD (100), A

A+B: add the contents of A with contents of B and store the result into register A save the results in the main memory locations 100

HLT

halt process

=> 100

17 17

Using Mnemonics in a program has improved significantly. This Assemble Language Program cannot be executed directly by CPU/ Machine. Because it is not in binary form, hence the Assembly Language program can be converted (Translated) into its equivalent machine language program before the computer can be executed. This translation can be done with the help of a translator program called Assembler. Assembler is System supplied software, which converts Assembly language program into low level machine language program. Functionality of Assembler: 1. it translates the assembler code into binary code 2. It also assembles the machine language program in Main memory of computer and makes it ready for execution.

It translates the Assembly language instructions into equivalent machine language instructions as shown in the above diagram. There is a one-to-one correspondence between Assembly language codes to machine language code. In this process of translation source program is not under execution. It is only converted/ translated to the machine understandable language. Here computer spend some time for execution of assembly program to get object program to get the result as compared to Machine language program. Whereas, Assembly Language Program saves the time and effort spent by programmer it is worth. The conversion of assembly language program to machine language program is shown in below diagram. Assembly Code Machine Code Operation Operand Operation Operand Address Address READ K A 200 READ L A 201 ADD K 1 200 ADD L 2 201 STORE W 6 203 PRNT W B 204 HLT F Conversion of assembly language code to machine language code(program) Execution of Assembling Language Program: Before a machine language program can be executed it must be stored in the memory of the computer. The assembly language program written by user itself may be stored into disk. This program is to be read into memory by another program called a Loader, which is already stored into ROM. The Loader or Initial Program Load (IPL) is usually stored in ROM and automatically moved into main memory by the hardware of teh computer when it is switched ON. The Loader program should be kept small. Thus a procedure is used whereby the first few instructions of the loader load the rest of the loader program. This is called Bootstrap Loading. In order to execute an assembly language program, we must first store the loader. The loader then reads, stores it in main memory. The assembler would be written in machine language and can thus be stored directly in memory. The Assembler now reads each instruction of the assembly language, translates it into a machine language statement, and stores it in the main memory. When entire assembly language is translated and stored, control passed to the first instruction of the assembled user program. This program now starts execution. The progression of the storing various programs in main memory is illustrated in the below diagram. The available free memory for user programs is usually specified by the manufacturer. An assembler is a machine language program. Since machine language programs are difficult to write and it would be preferable to keep them small. One method is to define this machine language program into an assembly language with minimal features and write an assembler for this language. The below diagram shows that Bootstrap method. Here, in this program written in higher level assembly language, which is translated by a program written in the rudimentary assembly language for which a translator already exists.

Program is to be read into memory by another program called Loader, which is already stored in the ROM. The Loader or Initial Program Load (IPL) is usually stored in ROM and automatically moved into Main memory by the hardware of the Computer when it is switched ON. The loader program should be kept small. Thus a procedure is used whereby the first few instructions of the loader load the rest of the loader program. This is called bootstrap loading Advantages of Assembly language program: 1. Easy to understand and use than machine language programs 2. Easier to locate and correct the errors 3. Easy to modify the assembly language program because it does not uses machine language instructions 4. Programmer no need to know or worry about the memory location addresses. 5. It has the efficiency of machine language instructions because there is a one-to-one correspondence between these two. 6. Easily re locatable. i.e the program stored in the memory locations can be easily changed by changing instructions in assembly language program. 7. Code reusability (pre written subroutines are existed) Disadvantages: 1. Machine dependent 2. Time consuming when compared to High level programming languages. 3. Knowledge of hardware (CPU / Processor) is required. Programmer need a good knowledge characteristics and logical structure of his/her computer to write good assembly language programs

The following diagram shows the relationship between computer hardware, low level and high level languages. The machine language instructions are nearest to the hardware and computer can easily understands the machine language program. They are machine dependent. Whereas high level languages requires the pre processing, translation, linking and loading to communicate with hardware. Many of such high level languages are C, FORTRAN, COBOL, PASCAL, JAVA, .NET, PERL, PHP.

Relation between Computer Hardware and Computer Languages.

High Level Languages: During the evaluation of computers till about 1955 computers were slow and had a small memory. In those days the use of computers was limited to small group of scientists. To write efficient program Assembly languages were used. With the improvements in Technology computers were designed with larger memory capacity higher speed and improved readability. Then the areas of computer applications also increases Now-a-days computers are having a potential that non expert user could efficiently use the computer to solve a problem. Here the user could not know the internal logical structural details, hardware details of a computer, whereas the programmer mainly concerns on the development of appropriate algorithm to solve a problem using the computer. These algorithms were written in natural (spoken) language such as English are converted into machine language automatically by the computer and execution of High Level languages are designed independent of the structure of specific computer. This facilitates the executing a program written in such a language on different computer. FORTRAN, COBOL, C, C++, JAVA, SMALL TALK, LISP, PROLOG, etc are examples of High Level Languages. Advantages:  Machine independence  Easier to learn & use, understand  Error ratio is less in High Level Languages  Debugging (locate and correct errors in program code) is easier  Lower program preparation cost  Better Documentation  Easy to maintain, read, write  Code reusability  Makes complex programming simpler.  High Level programming techniques are applicable every where even where computational resources are limited.  Length of the program is also small when compared to low level languages

 Easy to remember commands & Instructions in High Level Languages  Many real-time problems an be solved easily in High Level Languages

Disadvantages:  Lower efficiency: i.e multiple machine Language instructions (one to many) cannot be optimized taking more time to execute & require more memory space ->Hence if program efficiency is important then - Performance critical parts are written in A.L & - Non-critical parts are written in H.L.L ->However the advantage of efficient & optimizing is now becoming a non-issue  less Flexibility: There is no direct mechanism to control CPU, Memory. Therefore some task can't be done or can be done with great difficulty in H.L.L

The translator program is written normally in the assembly language of that computer.

High Level languages are Machine Independent as shown in the below diagram.

High level languages have the following facilities:  High Level Languages should be simple and has minimum number of code, symbols,, rules to write a program.  It should be very easy to write and understand.  High Level Language programs conveys some sense when related to natural languages (i.e our own languages).  Instructions in a program should be English like statements / sentences and not in the form of binary and assembly language.  Arithmetic rules should be very clearly defined. Example: A+B, A/B is very clear, Whereas A+/B will cause confusion.  Operations on data items and data structures should be well defined in High Level Languages. Example: addition, subtraction and division of complex numbers should be well defined in the languages.  Algorithms should be used to solve a science and engineering problems. Examples: Science and Engineering problems would use complex no’s, matrices, mathematical functions such as sin x, cos x, tan x, log x, ex etc.  Languages should be common to all kinds of computers. i.e machine independent.  To write High Level Program, the programmer need not to know the computer’s internal hardware logical CPU Architecture.  There is a one–to-many correspondence between high level language program instructions(Statements) to low-level or machine level program statements(Instructions) as shown in the below diagram.

 A simple example of a High Level C-Language Program is shown below. /* This is a simple C-Program */ Comments in a C language main() body of main function { printf(“**** WELOCME to C programming World*****\n”); formatted or standard output statement }  Classification of Computer Programming Languages as shown below

Procedure oriented language /Imperative Language: The word “procedure” is the key element. It means “a set of procedures” which is a “set of subroutines” or a “set of functions“. We all know about “functions in C language”. ‘C’ is a procedure oriented language. These languages has the power of expressing a general class of algorithms. Explain in detail about the procedure used to solve a problem in the form of procdures or functions. In a POP method, emphasis is given to functions or subroutines. Functions are a set of instructions which performs a particular task. Functions are called repeatedly in a program to execute tasks performed by them. For example, a program may involve collecting data from user (reading), performing some kind of calculations on the collected data (calculation), and finally displaying the result to the user when requested (printing). All the 3 tasks of reading, calculating and printing can be written in a program with the help of 3 different functions which performs these 3 different tasks. Example of POP is: C, VB, FORTRAN, and Pascal. Example of OOP is: C++, JAVA, VB.NET Shop, C#.NET. Procedural programming uses a list of instruction to tell the machine what to do step-by-step. Procedural programming relies on procedures, also known as routines or subroutines. Procedure oriented languages are computer programming language that has a power to express a general class of algorithms. These languages express in detail the procedure used to solve a problem. In other words the programme gives details of how to solve a problem. There are 3 types of programming languages as shown in above hierarchal diagram. FORTAN:  FORTRAN stands for FORMULA TRANSLATION.  It is the oldest HLL (High Level Language)  The Computational Instructions in FORTAN resemble general algebra. COBOL:  COBOL stands for “Common Business Oriented Language”  It is mainly used for business data processing.  It is used by data processing professionals for high level, m/c independent language.  COBOL is intended to be easily readable and understandable thus the interactive written in COBOL are verbose C language:  C was developed by Dennis Ritchie in 1972 , at the Bell Telephone Laboratories in USA  The popularity of c is due to the efficiency and it used to write an operating system Known as UNIX.  C has been standardized by ANSI.  C language is flexible and can be used to program a verity of applications.

C++ Language:

 C++ is a Object Oriented Programming language.  In C++, the program is written for real world objects.  Abstraction, Polymorphism, Inheritance, Encapsulation are four properties of Object Oriented Programming(OOP)  The advantages of OOP is “Programming in the large”  C++ was designed by Stroustrup in the mid 80's at the Bell Telephone Laboratories .  It is an extension of C. JAVA :  The development of JAVA has taken place as the usage of Internet increases.  A computer network written an organization using protocols, and providing a service similar to an internet is called Intranet. Problem oriented languages: These languages are designed to solve a narrower class of problems. The programmer /User need not express in detail the procedure used to solve the problem readymade procedure are preprogrammed. The user merely presents the input data to the program in a flexible language Example: MATLAB, LATIX Mathematical Non-procedural language: The procedural languages each statement causes the values stored in one or more memory locations to change. In non-procedural language variable are not synonymous to locations in memory. They are treated as arguments of functions. There are two classifications of nonprocedural languages 1. Applicative or functional languages. 2. Rule based languages or logic programming. The functional languages solve a problem by applying a set of functions to the initial variables in specific ways to get the answer. Example: LISP and ML A logic program is expressed as a set of atomic sentences known as facts and classes of query is the exposed execution of program now begins and system tries to find out the answer to the query is true or false for the given facts & rules . Example: PROLOG PROLOG has been also extensively used in Artificial Intelligence applications. Why Programming Languages? The first generations of computer users the machine language program to solve the problems using computer. In order to write machine language program a programmer has to remember all the operation codes of the computer and he also keep track of all the address of memory locations ie programmer had to deep knowledge of internal structure of the computer Writing and testing machine language programs takes a lot of time. It is possible for a computer user to concentrate on the development of good algorithms rather than be concerned with details of the internal structure of the computer. High level programming languages have been developed with the primary objective of facilitating a large number of people to use computers without need to know the details of internal logical structure of a computer. These languages are Machine independent. Example: It is not necessary for a driver to be a good mechanic. Similarly it is desirable but not essential for a programmer to know in detail how a computer works. A programming language is a set of rules that provides a way of telling a computer what operations to perform.

Levels of Programming Languages     

Machine language Assembly Language High Level Languages Fourth Generation Languages (4GL) Fifth Generation Languages (5GL)

Differences between compiler and interpreter: S.NO. 1

2 3 4

5 6 7 8 9

10 11 12

Compiler Compiler stores the high level language program, scans it, and translates the whole program into an equivalent machine language program. Such a translator is known as compiler. i.e compiler accepts whole program as an input at a time. Translates whole program at a time Writing the program for compiler is complex and difficult By nature compilers are complex programs. Hence, they require hard core coding and also requires much more memory space to execute a program It takes more time to translate It requires less time to execute the program i.e compilers are faster Examples: C Compiler, C++ compiler, COBOL Compiler etc It can execute conditional statements faster.

Interpreter Interpreter takes one statement of high level language at-a-time and translates it into a machine instruction which is immediately executed. This is called an interpreter. i.e. it accepts single statement as an input at a time. Translates the sentence-by-sentence Simple and easy to write Interpreters are easier to write to write because they are less complex programs. They also require less memory space for program execution. Takes less time to translate It takes more time to execute the program

Examples: MATLAB, LISP, BASIC, Python, RUBY languages uses interpreter. It can't execute conditional statements faster as than compiler. Converts the entire program to machine Interpreter executes one line at-a-time, and code and executes program run it and if an error found then it will stop execution. i.e an executable machine code can be generated only after correcting errors Debugging is difficult Easy to debug It generates separate object program It does not generate a permanent saved object code file. Once object file is generated, which can be Here every time it is executed from the executed at anytime without translating source program for getting object file again. (i.e no need to compile every time or because it translates statement by statement. again and again to run, we can run number (We need interpret whole program to run of times after compiling one time without re every time). compiling).

EXAMPLE:

1. Tools used to build compiler are LEX (Lexical Analyser) and YACC (Yet Another Compiler Compiler). 2. One important function of compiler is to finding out the errors while compiling a program before execution. There are different types of errors are occurred in a C-program compilation, they are 4 types of errors.

1. Syntax Errors:  The rules for writing instructions are called syntax rules.

 Any violation of rules of the language gives syntax errors.  Syntax errors are found at Compilation time.  The list of errors & line numbers are displayed at the time of compilation time.  Sometimes the line number may not exactly indicate the place of the error. 2. Run-time Errors:  The errors such as exceeding the system dependent limits, dividing by zero, square root of a negative number mixing of various data types are comes under run-time errors.  Detected at the time of program execution. 3. Logical Errors:  As the name implies, these errors are related to the logic of the program.  Due to logically incorrect instructions of the program.  Syntax and run-time errors can be found and detected at the time of compilation and execution respectively. These are easy to find and correct. But logical errors are difficult to detect.  These errors can be known only after examining the output of the program.  Error detection should always start with a thorough review of each logical group of statements in the program.  If not detected by inspection, print out certain intermediate results with the help of print statements. This technique is called Tracing. 4. Latent Errors:  Shows up only when particular set of data is used.  Example: consider the following ratio: Ratio is q/ (p-q); An error occurs only when p & q are equal.  An error of this kind can be detected only by using all possible combinations of test data. Linker: Linking of other built0in functions (object programs) is done by the linker. In C-Language, files are translated separately. Function calls that cross file boundaries, references to global data requires linking. Functions of Linker: Linking makes the address of program known to each other. So that transfer of control from one program to another or main program takes place during the program execution. 



Linking depends on the features of programming languages. Linking in Object Oriented Programming is different from linking of non procedural programming. Example: linking of JAVA program is different from linking of FORTRAN/COBOL and different from PASCAL. Linking is done after object code generation, prior to program execution time.

Linkage Editor/ Linking Loader: For example, input and output libraries are large subroutine libraries. These formatted or standard input and output libraries are system supplied routines. These libraries are normally defined outside the user program.

It is software which performs the machine language program produced by the translator is combined with other machine language program residing within the library to form useful execution unit. This process of program combination is called linking and the software that performs this operation is variously known as linking loader/ linkage editor.  At load time, linking loader combines whatever program requires and loads them directly into primary memory storage.  Linkage editor will also perform the same task, but it creates load image that it preserves on secondary memory storage for future reference.  Whenever a program is to be executed, the load image produced by the linkage editor may be loaded immediately without the overhead of recombining program segments.  Linking refers to the creation of single executable file from multiple object files as shown in below diagram. Loader: What is a loader? Loading means physically placing the machine instructions and data into main memory. A loader is a system program that accepts object program and prepares them for execution and initiates the execution as shown in the below diagram. Functions of Loader: 1. Assignment of load-time storage area to the program. 2. Loading of program into assigned area. 3. Relocation of program o execute properly from its load -time storage area. 4. Linking of program with one another. Types of Loaders: 1. Absolute Loader 2. Re locatable Loader Absolute loader places the items into precise memory location indicated in the machine language program. Re locatable Loader may load a program at various places in memory storage depending on the availability of primary storage area at the time of loading there is relocating register which is used to relocate a program dynamically. The base address of the program in main memory is placed in re locating register. Contents of Re locatable Register is added into each address developed by running or executing program. The user is able to execute the program as if it at location zero. At execution time as the program runs all the address reference involve the relocation register. This allows the program to reside in memory location other than those for which it was translated to occupy Memory Address of running program = base register + Re locatable address. Relocation:    

Simply moving a program from one location to another location in main memory. Refers to the adjustment of address fields. Task of relocation is to add some constant value to each relative address in memory segment Adjustment of all addresses dependent location.

Execution of Program written in High Level Language involves the following steps A program in C language involves into different processes. Below diagram will help you to understand all the processes that a C program comes across. 1. Translation 2. Linking 3. Relocation 4. Loading It is not just the compiler i.e. part of translation process. Often, other programs also require before the compilation process has begun and after target program has been generated as shown in the above diagram.

C Preprocessor directives:     

Processor: is a system software program that processes its input data to produce output that is used as input to another program. The pre-processor provides the ability for the inclusion of header files, macro expansions, conditional compilation and line control. Before C-program is compiled in a compiler, source code is processed by a program called preprocessor. This process is called preprocessing. Commands used in the preprocessor are called preprocessor directives and they are begin with # symbol. Preprocessor is required to collect and collate source program if it has been split into

different files. Below is the list of preprocessor directives that C language offers. S.no 1 2 3

4

Preprocessor

Syntax

Description This macro defines constant value and can be any of Macro #define the basic data types. Header file The source code of the file “file_name” is included #include inclusion in the main program at the specified place Set of commands are included or excluded in source Conditional #ifdef, #endif, #if, program before compilation with respect to the compilation #else, #ifndef condition #undef is used to undefine a defined macro variable. Other directives #undef, #pragma #Pragma is used to call a function before and after main function in a C program

Example program for #define, #include preprocessors in C:  #define – This macro defines constant value and can be any of the basic data types.  #include – The source code of the file “file_name” is included in the main C program where “#include ” is mentioned. #include #define height 100 #define number 3.14 #define letter 'A' #define letter_sequence "ABC" #define backslash_char '\?' void main() { printf("value of height : %d \n", height ); printf("value of number : %f \n", number ); printf("value of letter : %c \n", letter ); printf("value of letter_sequence : %s \n", letter_sequence); printf("value of backslash_char : %c \n", backslash_char); } OUTPUT: $ gcc header_file.c $ ./a.out value of height : 100 value of number : 3.140000 value of letter : A value of letter_sequence : ABC value of backslash_char : ?

Header File:  

 

Header file is a file with file extension .h which contains function declarations and macro definitions are to be shared between several source files. 2 types of header files in C-Language 1. Programmer Written Header Files 2. Compiler Header Files. Each header file can be included with C preprocessing directive #include. Example: stdio.h is a header fiel comes along with C-Compiler. Many of the compiler header files are shown below.

C Language: Standard Library Functions - Header File In the C Programming Language, the Standard Library Functions are divided into several header files.Below is the list of header files that we will cover: Header Files

Diagnostics Functions Character Handling Functions Localization Functions Mathematics Functions Nonlocal Jump Functions Signal Handling Functions Variable Argument List Functions Input/Output Functions General Utility Functions String Functions Date and Time Functions

languages notes.pdf

or restricted vocabulary because the programming languages by its very nature and. purpose does ... logical & comparison operations .... languages notes.pdf.

962KB Sizes 0 Downloads 153 Views

Recommend Documents

Languages of Myanmar
Many people have put effort since long time ago to develop Myanmar Character Codes and Fonts but ... Latin scripts Sample website:6. Kayin/ Karen Tibeto-. Burman. Kayin. (Karen). State ..... 8 www.kaowao.org/monversion/index.php.

Languages and Compilers
Haaften, Graham Hutton, Daan Leijen, Andres Löh, Erik Meijer, en Vincent Oost- indië. Tenslotte willen we van de gelegenheid gebruik maken enige studeeraanwijzingen te geven: • Het is onze eigen ervaring dat het uitleggen van de stof aan iemand a

Characterizing Visual Languages
... or other symbols can be positioned to a theoretically infinite degree of precision. .... Behaviour and Information Technology, 1(1) pp. 3-36 (1982). 3. Fredrick P.

Languages In Connection.pdf
Eastern language families have. historically included .... This existence of parallel language. registers (of ... Displaying Languages In Connection.pdf. Page 1 of 20.

Alphabets, Strings, and Languages - GitHub
If Σ = {a, b}, then. Σ = {ε, a, b, aa, ab, ba, bb, aaa, aab, aba, . . .} . ..... We shall now take this concept and develop it more carefully by first defining ... Moreover, only strings that can be constructed by the applications of these rules a

On Small Hard Leaf Languages
For these particular leaf languages the balanced leaf language classes are the same ...... fine Complexity Classes, Theoretical Computer Science 104, 1992, pp.

Languages and corporate savings behavior
Aug 2, 2017 - It has recently been shown that heterogeneity in languages explains the .... While there is little evidence to support the strong form (e.g., Chomsky, 1957 ..... 365. 0.084. South Africa. 293. 2089. 0.115. South Korea. 1163. 5702.

Languages of South Africa
Northern Ndebele live in Zimbabwe. The 1993 version of the Constitution referred to ... by approximately 61 percent of whites and 76 percent of Coloured (multiracial) people in the country. ... The fastest growing non-official language is Portuguese

PDF Online Languages and Machines
Theory of Computer Science (3rd Edition) - PDF ePub Mobi - By .... theoretical concepts and associated mathematics are made accessible by a "learn as you go".

Return-Oriented Programming: Systems, Languages, and Applications
systems, has negative implications for an entire class of security mechanisms: those that seek to prevent malicious ... understood that W⊕X is not foolproof [Solar Designer 1997; Krahmer 2005; McDonald. 1999], it was thought to be a ..... The remai

Developmental dyslexia in different languages
However, a quantitative meta-analysis using the same database showed ..... the same software was used to control the experiment and to collect naming re-.

Parsing Languages with a Configurator
means that any occurrence of all Am implies that all the cate- gories of either ... In this model, the classes S,. Sentence. Semantic. +n:int. Cat. +begin:int. +end:int.

Exploiting Similarities among Languages for Machine Translation
Sep 17, 2013 - translations given GT as the training data for learn- ing the Translation Matrix. The subsequent 1K words in the source language and their ...

Overcoming the Multiplicity of Languages and ... - CiteSeerX
inlined inside the HTML code using a special tag to fit the declarative and ... 2. The QHTML Approach. QHTML1 provides an integrated model in the form of a set ...