Nhà phát minh ngôn ngữ lập trình phổ biến nhất

John Backus, mất ngày 17 tháng 3 năm 2007, là nhà tiên phong trong phát triển những ngôn ngữ lập trình máy tính, đồng thời cũng là nhà nghiên cứu hàng đầu về lập trình chức năng.

Backus chào đời ngày 3 tháng 12 năm 1924 tại Philadelphia và lớn lên ở Wilmington, Delaware. Bố ông được đào tạo để trở thành một nhà hóa học nhưng lại quyết định chuyển sang nghề môi giới nhà. Chính bởi vậy mà gia đình ông đã sớm trở nên giàu có và nổi lên nhanh chóng trong xã hội thời đó. Khi còn là một đứa trẻ, cậu bé Backus thích thú với công việc hàn cơ khí và rất yêu hóa học. Backus đã tỏ ra là một đứa trẻ có năng khiếu và ham học hỏi. Ông được cha mẹ gửi tới trường trung học Hill School, một trường tư thục dành riêng cho con cái nhà giàu ở Pottstown, Pennsylvania. Nhưng quả thực thành tích học tập không lấy gì làm tự hào và thường xuyên phải tham gia những khóa học hè để có thể giúp ông theo kịp chương trình học so với chúng bạn cùng trang lứa. Tình hình cũng không lấy gì sáng sủa hơn khi ông bước chân vào cánh cửa Đại học Virginia. Tại đây Backus theo học chuyên ngành về kỹ sư cơ khí vào năm 1942.
Năm 1943, Backus gia nhập quân đội theo nghĩa vụ quân sự và được phân công vào chương trình chống máy bay. Những cuộc kiểm tra năng khiếu đã tiết lộ khả năng thông minh nổi bật của ông, và ngay lập tức, chàng trai này đượ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. Trong khoảng thời gian đó, Backus cũng đã tham gia một khóa học đào tạo chuẩn bị y học. Do không hứng thú và chán nản nên đã bỏ dở giữa chừng. Rời quân ngũ năm 1946, chàng trai trẻ Backus tiếp tục theo học tại Đại học Columbia ở New York, ban đầu như một sinh viên dự bị do kết quả học tập quá kém cỏi. Nhưng ít nhất chàng trai này đã chứng tỏ được thành công trong lĩnh vực toán học để tốt nghiệp với tấm bằng cử nhân vào năm 1949, để rồi năm tiếp sau ông nhận tiếp tấm bằng thạc sỹ.
Năm 1948, IBM hoàn thành xong chiếc máy tính điện tử thử nghiệm đầu tiên được biết với tên gọi SSEC. Đó là một cỗ máy đồ sộ với 13,000 đèn điện tử cùng với 23,000 rơ-le. IBM nhanh chóng đem giới thiệu cho công chúng sáng chế này tại phòng trưng bày ở quảng trường New York với mong muốn thu hút thật nhiều sự chú ý và tò mò của người dân và giới truyền thông. Backus đến xem, nhìn thấy “cỗ máy” SSEC với niềm phấn khích. Ngay lập tức ông quyết định thuyết phục IBM thuê mình trong vị trí của một lập trình viên. Kể từ đó, chàng trai Backus đã dành nhiều năm để tính toán vị trí của Mặt trăng, một công việc ông rất mực yêu thích.
Đế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. Chiếc máy tính đã được lập trình ở một cấp độ rất gần với ngôn ngữ máy tính nhị phân cơ bản, mà thực chất không khó nhưng tốn thời gian và dễ gặp phải lỗi. Bài toán này đã 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. Cũng giống như những hệ thống lập trình tương tự đang được phát triển ở một vài nơi khác cùng thời gian đó, 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.
Fortran Translation bao gồm 18,000 lệnh và chứa đựng những thuật toán cực kỳ phức tạp cho việc tối ưu hóa mã. Fortran được người sử dụng IBM 704 nồng nhiệt đón nhận và các nhà chế tạo máy tính khác cũng nỗ lực chạy đua để tạo ra những hệ thống Fortran, bởi vậy phần mềm máy tính của họ có thể tương tích với hệ thống phần mềm IBM. Ngày nay, nó đã trở thành ngôn ngữ chung cho tính toán khoa học. Tuy nhiên Fortran cũng đã thường bị chỉ trích vì cái “không trang nhã” của nó. Nhưng sau đó, Backus đã giải thích rằng, khi hệ thống này được thiết kế thì hiệu suất là vấn đề tối quan trọng đặt lên hàng đầu. Và tất nhiên, không một ai có thể mơ rằng, một ngôn ngữ sẽ tiếp tục mạnh mẽ trong nửa thế kỷ sau đó. Nhưng thực tế, Fortran đã làm được nhiều hơn điều đó.
Cuối năm 1950, Backus đã trở thành một thành viên của Ủy ban Algol. Ở đây, các kỹ sư đang thiết kế một ngôn ngữ lập trình khoa học quốc tế với tên gọi Algol 60. Về nguyên tắc, ngôn ngữ này đã được định rõ trong BNF (Backus-Naur Form). Algol 60 là một ngôn ngữ lập trình phổ biến ở châu Âu trong những năm 1960 và 1970. Tuy nhiên, ngôn ngữ này không bao giờ thay thế được Fortran, nguyên do căn bản là bởi vì phát minh này đã được hoàn thiện trên mã Fortran. Nhưng dù sao 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.
Sau những năm bị lôi cuốn bởi Fortran, Backus lặng lẽ trong công việc của một nhà khoa học. Và cho đến năm 1960, ông trở thành một nhân viên của IBM Research đặt tại New York. Ở IBM Research, Backus đã dẫn đầu một nhóm nghiên cứu về lập trình chức năng, một kiểu mẫu lập trình mới nhắm vào việc tính toán thông qua ước lượng những hàm toán. Ý tưởng này nhằm “tránh” cái mà Backus gọi là “cổ chai von Neumann” (John von Neumann, một trong những nhà phát minh máy tính). Và như Backus đã từng giải thích, một máy tính bao gồm một bộ xử lý và một bộ nhớ; mục đích của chương trình là thay đổi trạng thái của bộ nhớ, sử dụng bộ xử lý, một lệnh ở một thời điểm. Dù thế nào đi nữa, lập trình chức năng đã và sẽ tiếp tục trở thành một khoa học máy tính lớn.
Nghỉ hưu vào năm 1991, sống hết quãng đời còn lại và ra đi trong vinh quang, John Backus đã tiên phong mở đường cho thế hệ ngôn ngữ lập trình khoa học phổ biến rộng rãi nhất, đồng thời cũng là nguời có nhiều đóng góp to lớn cho lĩnh vực khoa học máy tính.

ĐP (Theo Nature)

Tác giả