John Backus

John Warner Backus (3 tháng 12 năm 1924 - 17 tháng 3 năm 2007) là một nhà khoa học máy tính người Mỹ. Ông đã chỉ đạo nhóm phát minh và triển khai FORTRAN, ngôn ngữ lập trình cấp cao đầu tiên được sử dụng rộng rãi và là người phát minh ra Dạng Backus – Naur (BNF), một một thủ tục ký hiệu được sử dụng rộng rãi để mô tả văn phạm của các ngôn ngữ lập trình, tập lệnh và các giao thức truyền thông. Ông cũng là nhà nghiên cứu hàng đầu về lập trình chức năng.

## Những năm đầu đời
John Backus chào đời ngày 3 tháng 12 năm 1924 tại Philadelphia và lớn lên ở gần Wilmington, Delaware. Backus học tại The Hill School ở Pottstown, Pennsylvania. Cậu tỏ ra là người có năng khiếu và ham học hỏi, yêu thích hàn cơ khí và hóa học. Tuy vậy Backus không phải là một học sinh siêng năng, có thành tích học tập không đáng tự hào lắm và phải tham gia các khóa học hè để theo kịp các bạn.

Con đường học vấn của ông cũng không khả quan hơn khi ông vào Đại học Virginia. Tại đây ông phải vật lộn với các khóa học của mình và bị đuổi sau một năm vì kém chuyên cần. 

Sau đó, ông nhập ngũ vào Quân đội Hoa Kỳ trong Chiến tranh Thế giới thứ hai, và cuối cùng được giữ cấp bậc hạ sĩ, được chỉ huy một khẩu đội phòng không đóng tại Fort Stewart, Georgia. Sau khi nhận được điểm cao trong những cuộc kiểm tra năng khiếu, ông được gửi đi đào tạo tại một khóa học kỹ sư chuyên gia đặc biệt ở Đại học Pittsburgh, Pennsylvania. Sau đó, anh chuyển sang chương trình đào tạo chuẩn bị y học tại Đại học Haverford. Trong thời gian thực tập tại bệnh viện, anh được chẩn đoán mắc khối u xương sọ, khối u được loại bỏ thành công và thay vào đó là một chiếc đĩa. Sau đó, anh chuyển đến trường Y khoa Flower and Fifth Avenue để học y, nhưng không thấy hứng thú và bỏ dở giữa chừng. Ông tiếp tục phải trải qua cuộc phẫu thuật thứ hai để thay thế tấm kim loại trong đầu bằng một thiết kế của riêng mình, và nhận được giấy giải ngũ danh dự từ Quân đội Hoa Kỳ vào năm 1946.

## Ngôn ngữ Fortran
Sau khi rời quân ngũ, Backus tiếp tục theo học tại Đại học Columbia ở New York, theo đuổi niềm đam mê toán học và nhận bằng thạc sỹ vào năm 1950. Cũng vào năm 1950, ông gia nhập IBM. Trong ba năm đầu tiên, ông làm việc trên một loại máy tính có tên gọi là SSEC, dự án lớn đầu tiên của ông là viết một chương trình để tính toán các vị trí của Mặt trăng.

Đến năm 1952, IBM giới thiệu sản phẩm máy tính thương mại đầu tiên, model 701. Mẫu máy này có nhiều hạn chế và do đó, nó thôi thúc Backus phát minh ra một hệ thống lập trình tự động được gọi là Speedcoding cho model 701, giúp thực hiện được nhiệm vụ dễ dàng hơn nhiều. Tuy nhiên, Speedcoding lại tạo ra những chương trình chậm không kinh tế. Chính vì vậy, mùa thu 1953, Backus đã đề nghị với người quản lý phát triển một hệ thống có tên Fomula Translator-sau này gọi là Fortran- cho máy tính model 704. 

Sau đó không lâu chương trình này nhanh chóng được công bố. Đặc điểm độc đáo nhất của Fortran là khả năng tạo ra những chương trình tốt bằng 90% những chương trình được viết bởi một nhà lập trình. Backus đã hăng hái tích cực và chỉ định lập một nhóm gồm mười lập trình viên trong khoảng thời gian sáu tháng. Mục tiêu thiết kế một hệ thống chuyển đổi để tạo ra những chương trình hiệu quả thực sự đã trở thành một thách thức lớn. Lúc mà hệ thống được công bố vào tháng 4 năm 1957, sáu tháng đã trở thành ba năm.

## Dạng Backus-Naur
Backus phục vụ và là thành viên trong các Ủy ban quốc tế ALGOL. Một ủy ban có ảnh hưởng và nhanh chóng trở thành tiêu chuẩn thực tế trên toàn thế giới về công bố các thuật toán. Backus đã phát triển Dạng Backus – Naur (BNF), được xuất bản trong báo cáo của UNESCO về ALGOL 58. Đây là một siêu ngữ có thể mô tả bất kỳ ngôn ngữ lập trình phi ngữ cảnh nào và rất quan trọng trong việc phát triển các trình biên dịch. Ngông ngữ Algol đã có những ảnh hưởng lớn trong thiết kế ngôn ngữ lập trình, và BNF đã trở thành một trong những nguyên tắc cơ bản của khoa học máy tính. Sự đóng góp này đã giúp Backus giành được giải Turing năm 1977.

## Lập trình chức năng
Sau đó, Backus đã làm việc, trong nhiều năm trời, với một nhóm kỹ sử tại IBM trong một lĩnh vực được gọi là lập trình chức năng. Theo ông, ý tưởng chính là phát triển một hệ thống lập trình tập trung nhiều hơn vào việc mô tả vấn đề mà một người muốn máy tính giải quyết và ít đưa ra hướng dẫn từng bước cho máy tính.

Những ngôn ngữ lập trình mà ông làm việc để phục cho việc nghiên cứu này là FP và sau người kế nhiệm của nó, FL. FP ít được triển khai trong thực tế, và chủ yếu được sử dụng cho mục đích giáo dục. Trong khi FL là một dự án nội bộ của IBM và mã nguồn không được công khai.  

## Giải thưởng và vinh danh

* Giải thưởng W. W. McDowell (1967)
* Giải thưởng Turing (1977)
* Thành viên của American Academy of Arts and Sciences (1985)
* Tiến sĩ danh dự của Université Henri-Poincaré (1989)

## Tham khảo