Research Summary: Today's common programming languages come in two forms: assembly and high-level languages. Assembly language and machine language are essentially the same. They are both directed to the hardware operation, but the instruction set is a set of abbreviated identifier, easy to identify and memory. The compiled executable produced by the source program is not only relatively small, but also very fast. High-level languages are the choice of the vast majority of programmers. Compared with assembly language, it not only composes many related machine instructions into single instructions, but also removes the details related to specific operations that are irrelevant to the completion of work, such as the use of stacks, registers, etc. It greatly simplifies the instructions in the program. At the same time, by omitting many details, programmers don't need much expertise. High-level language is mainly relative to low-level language, it does not refer to a specific language, but includes many programming languages, such as popular VB, VC, FoxPro, Delphi, etc. The syntax and command format of these languages are different. The programs compiled by the high-level language cannot be recognized by the computer directly, and they must be converted to be executed, which can be divided into two types according to the transformation method: interpretation class and compilation class. Object-oriented programming and data abstraction in the modern program design thought occupies very important position, the future development of language will not be a pure language standard, but will be in a completely object-oriented paradigm which is more likely to express the real world, are more likely to be written, its use will no longer be just a professional programmer. People can use custom real life work process in a simple way to complete the programming.


Link to Websites: 1. https://web.archive.org/web/20121108043216/http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/intro.htm 2. http://www.cs.brown.edu/people/tld/courses/cs148/02/programming.html 3. http://www.cs.berkeley.edu/~flab/languages.html


Questions: 1. What is the hardest high-level programming language? 2. Is there a course in CMUQ about designing programming languages? 3. Is there a course in CMUQ about assembly language and reverse engineering techniques such as unpacking?