II. Lịch sử phát triển ngôn ngữ lập trình:
2. Các ngôn ngữ mã giả:
Từ mã giả ở đây có nghĩa khác với nghĩa hiện tại của nó bây giờ. Ta gọi các ngơn ngữ này là các mã giả bởi vì chúng được đặt tên như thế vào thời điểm
chúng được phát triển và sử dụng (cuối những năm 1940 và đầu những năm
1950). Ngơn ngữ máy thì khó để mà đọc, cũng như sửa đổi và dài dịng. Máy thì khơng hỗ trợ xử lý dấu chấm động vì vậy đã ra đời các ngôn ngữ mã giả.
2.1. ShortCode
Là ngôn ngữ mã giả đầu tiên, được phát triển bởi John Mauchly vào năm 1949 cho máy tính BINAC. Các biểu thức tốn học hay phương trình được mã hóa. Các mã là các cặp giá trị byte, và nhiều phương trình được mã hóa trong một từ. Short Code khơng được chuyển thành mã máy. Nó được thực thi với một trình biên dịch, quá trình này vào thời điểm đó được gọi là lập trình tự
động.
Rõ ràng nó làm đơn giản hóa q trình lập trình, nhưng biểu diễn bằng Short Code chậm hơn gần 50 lần so với mã máy.
25
2.2. Speedcoding
Ở các nơi khác, các hệ thống thông dịch đang được phát triển để mở rộng
các ngôn ngữ máy để có thể thao tác với dấu chấm động. Hệ thống
Speedcoding được phát triển bởi John Backus cho IBM 701 (1954) là một ví
dụ. Trình thơng dịch Speedcoding chuyển đổi 701 thành một máy tính ảo có khả năng tính tốn dấu chấm động. Hệ thống bao gồm các lệnh giả cho bốn thao tác số học (cộng, trừ, nhân, chia) trên dữ liệu dấu chấm động, cũng như
các thao tác căn bậc hai, sin, arctang, số mũ, và lơgarit. Rẽ nhánh có điều kiện và khơng điều kiện và sự chuyển đổi đầu vào/đầu ra cũng là một phần của kiến
trúc ảo. Một trong những giới hạn của hệ thống là bộ nhớ sau khi tải trình thơng dịch vào máy thì chỉ cịn 700 từ cho người sử dụng và mỗi lệnh thêm vào mất 4.2 mili giây để thực thi. Nhưng mặt khác, Speedcoding tự động tăng chỉ mục cho truy cập mảng. Chức năng này không xuất hiện trong phần cứng mãi
đến các máy tính UNIVAC 1107 năm 1962. Nhờ chức năng đó, nhân ma trận
có thể được thực hiện trong 12 lệnh Speedcoding. Backus xác nhận rằng vấn
đề đó có thể mất hai tuần để lập trình trong mã máy thì chỉ mất vài giờ khi sử
dụng Speedcoding.
Ở đây ta có thể thấy “nguyên lý sử dụng trung gian” là sử dụng mã giả để làm cho chương trình ngắn gọn, dễ hiểu hơn, giảm bớt cơng sức lập trình.