Cyber Anh Hùng Truyện

Chương 17. Ngôn Ngữ Và Toán Học

Thông báo

Địa chỉ WEB hiện tại của Tiên Vực là https://tienvuc.info. Trong trường hợp không thể truy cập được, bạn hãy vào https://tienvuc.link để xem địa chỉ mới nhất và tải ứng dụng.

Willy cực kỳ hoảng hốt. Chỉ khi thấy thằng nhóc con nhà Yulia đã đi xa hẳn, anh ta mới dám co dò chạy.

Lúc bị Yuki va phải, Willy đã sợ hãi đến cứng đờ người. Anh ta phải cố hết sức, mới có thể kiềm chế bản thân.

“Không thể tiếp tục thế này…”

Willy vừa nghĩ vừa chạy hết tốc lực, chẳng mấy chốc đã rời khỏi rìa trấn, ngồi xổm bên cạnh con đường chính. Một đám bụi bất chợt cuốn tới. Willy bật dậy, vẫy tay liên hồi.

Tiếng còi xe vang rền. Giữa tiếng phanh gấp và bụi đất mịt mù, một bóng đen dừng lại trước mặt Willy. Theo sau đó là tiếng điều chỉnh tiêu cự camera. Một lúc sau, giọng nói thô ráp khàn đặc vang lên: “Willy? Sao cậu lại ở đây?”

“Enoch….” Willy run rẩy nói: “Tôi sợ quá, Enoch.”

Willy vốn sống nhờ vào các công nhân hạng nặng, vậy nên anh ta biết rõ thói quen và lịch trình thường ngày của họ. Anh ta đoán Enoch có thể sẽ đi qua con đường chính vào khoảng thời gian này.

“Này! Cậu sợ cái gì chứ?” Enoch không mấy quan tâm.

Willy thét lên: “Hôm qua chính anh là người bảo tôi đẩy tên đó ra! Là anh mà! Anh không thể bỏ mặc tôi được! Nếu không…. Nếu không….” Willy nói, giọng như oà khóc: “Enoch đại ca! Tôi…”

Ban đầu, là vì muốn lấy lòng Enoch nên Willy mới đồng ý “giở trò với Yog”. Enoch là kẻ hào phóng nhất trong số những công nhân hạng nặng. Quan trọng nhất, Enoch rất lười biếng, thường xuyên thuê người khác dỡ hàng hộ. Chỉ cần kết thân được với Enoch, Willy sẽ không lo thiếu việc nữa.

Nhưng Willy thật sự không thể ngờ tên “Yog”.… không, tên “Sơn” kia hình như rất lợi hại.

Hắn thế mà có thể đánh bại một võ giả!

Giọng nói Enoch cũng bắt đầu có phần khẩn trương: “Hắn phát hiện ra cậu rồi sao? Không thể nào. Khi đó xung quanh toàn là người của chúng ta… Bọn họ đều tham gia, chắc chắn không thể tố giác chúng ta được.”

“Là thằng nhãi con nhà Yulia!” Willy hét lớn.

“Yuki? Nó nhìn thấy rồi à?” Enoch cảm thấy khó xử. Gã từ lâu đã thấy Yuki rất phiền phức, nếu như không có Yuki, có lẽ Yulia đã chấp nhận hắn rồi – thậm chí, Hướng Sơn cũng là do Yuki đào lên.

“Vừa nãy đi trên đường, nó đã va vào tôi! Va vào tôi đấy!” Willy hoảng loạn: “Chắc chắn thằng nhãi con đó đã thấy rồi! Nếu không…. Nếu không thì….”

“Chỉ va trúng một phát?” Enoch nghe vậy, không biết nên khóc hay nên cười: “Chỉ có chút chuyện nhỏ đấy thôi á?”

“Chuyện nhỏ quái gì chứ? Tôi đã đẩy gã quái vật đó đấy!” Willy hét to: "Đến con chó kia còn thua, làm sao tôi thắng được!”

“Đó chỉ là may mắn thôi!” Enoch gằn giọng: “Chẳng qua là đại lão gia tốt bụng thôi! Thắng cái gì mà thắng. Không phải hắn còn ngã lăn ra đất rồi nói cái gì mà “Tôi thua rồi, tôi thua rồi” sao? Loại hèn nhát… Hừ!”

“Anh không thể bỏ mặc tôi được!” Willy tiếp tục gào lên: “Hay là chúng ta lừa thằng nhóc đó đi! Dù là nghiền nát, hay tháo linh kiện đem bán….”

“Này! Cậu điên à!” Enoch giật mình. Gã thật sự có ý định đến với Yulia. Enoch hiểu rõ tính cách của mình, gã không giữ được bí mật. Nếu động đến Yuki, gã sẽ không thể tiến tới với Yulia được nữa.

Enoch bắt đầu cảm thấy phiền với Willy. Nhưng gã cũng sợ nếu cứ mặc kệ anh ta, nói không chừng Yuki sẽ xảy ra chuyện, và hắn cũng bị liên luỵ theo. Nghĩ vậy, Enoch cố dỗ dành: “Chuyện nhỏ thôi mà… Thôi được, hôm nay tôi vốn định vào trong thành vui chơi. Để tôi cho cậu đi xem mấy cái hay ho nhé, thấy thế nào?”

“Hay ho?” Wlly ngơ ngác hỏi: “Là cái gì? Đấu trường sao? Hay là có trò mới?”

“Còn kích thích hơn thế nhiều… Lên xe đi!”

Enoch không có buồng lái. Gã hơi nghiêng thùng xe, để cho Willy tự trèo lên.

Bụi đất tung bay.

………………

“Một lập trình viên chân chính, phải bắt đầu từ một cỗ máy trần trụi!”

“Một lập trình viên đích thực không phân biệt kiểu lập trình hướng đối tượng hay hướng thủ tục, không cần biết kiểu dữ liệu mạnh hay yếu. Từ ngôn ngữ máy, hợp ngữ, hay trình biên dịch mã cho đến vô số chương trình ứng dụng cao cấp, hắn không gì không biết!”

Một vài ký ức vụt sáng trong đầu. Hướng Sơn không nhớ rõ ai là người đã nói câu đó. Tuy nhiên, một số “tri thức" nào đó nhắc nhở hắn rằng đó là một lập trình viên huyền thoại, người đã định hình nên lịch sử.

Hướng Sơn và "người này" có giao tình rất sâu, nhờ đó, hắn đã học được gần như “tất cả mọi thứ” liên quan tới lập trình.

Bản chất của thứ này chính là “Toán học”.

Lập trình không chỉ là ngôn ngữ học, mà còn là toán học.

Hoặc có thể nói, ngôn ngữ học chính là một dạng toán học.

Vào khoảng thời gian cuối Thế chiến thứ hai, các nhà khoa học đã khai phá một lĩnh vực hoàn toàn mới gọi là “bài toán bằng lời”. Trong lĩnh vực này, những khái niệm toán học được khoác lên mình lớp áo của “ngôn từ”, và được biểu thị bản chất tự nhiên của chúng thông qua các cấu trúc đại số. Nói ngắn gọn, các nhà toán học đã bắt đầu thử nghiệm dùng quy tắc của ngôn ngữ học để giải mã toán học.

Năm 1944, nhà logic học người Mỹ và cũng là người tiên phong trong lĩnh vực trí tuệ nhân tạo, Emil Post, đã chứng minh bài toán bằng lời có tính không thể quyết định.

Ba năm sau, vào năm 1947, con trai của Andrey Markov, Anatoly Markov đã đưa ra một chứng minh tương tự, dù không hề biết tới công trình của Post.

Như vậy, trong ngôn ngữ, tồn tại “những vấn đề không thể xác định được”. Đây là ví dụ đầu tiên về một không thể xác định không phải do con người đặt ra, cũng không xuất hiện trong lĩnh vực khoa học tính toán.

Cùng thời điểm đó, các nhà ngôn ngữ học quyết định đi theo hướng ngược lại, nhưng kết quả đạt được cũng không có gì khác biệt.

Nếu ngôn ngữ học hiện đại bắt nguồn từ Ferdinand de Saussure, thì Noam Chomsky chính là đỉnh cao sau Saussure. Ngoài việc được biết đến rộng rãi như một nhà ngôn ngữ học, triết học và xã hội học, Chomsky còn có thể được coi là một nhà toán học.

Nghiên cứu của ông về ngôn ngữ học, thậm chí đã được ghi vào lịch sử toán học.

Hai khái niệm do ông tạo ra, "văn phạm phi ngữ cảnh" và "văn phạm chính quy", có vai trò quan trọng trong lý thuyết khoa học máy tính.

Ngoài ra, các nhà di truyền học cũng vô cùng kính trọng Chomsky. Họ tin rằng nghiên cứu của ông về ngôn ngữ có thể là chìa khoá để phá giải mã di truyền – giúp họ tìm ra "ngôn ngữ của Đấng tạo hoá" được ẩn giấu trong thông tin di truyền.

Nói cách khác, đó là "chương trình" mà hóa học di truyền tuân theo.

Chỉ cần nghiên cứu đủ sâu về toán học và các lĩnh vực liên quan, việc tạo ra một ngôn ngữ độc nhất không phải điều quá khó.

Thách thức thực sự, là đảm bảo ngôn ngữ đó khó hiểu với con người, nhưng dễ hiểu với máy móc.

Ngôn ngữ càng khó hiểu, ưu thế trong nội công càng lớn. Các hiệp khách chính là dựa vào nội công để ẩn mình mỗi khi tham gia Internet. " Ngôn ngữ" là gốc rễ của mọi phòng tuyến của họ. Chức năng xử lí ngôn ngữ của bộ não của họ luôn phối hợp chặt chẽ với nội công.

Ngôn ngữ họ thông thạo càng phức tạp, nội công của họ càng khó bị phát hiện.

Tuy nhiên, nếu chỉ vì ưu thế nội công mà hy sinh hiệu suất máy tính, thì đó là lấy ngọn bỏ gốc.

Lisp không thể đáp ứng yêu cầu "phức tạp". Nó quá gần với toán học, đến mức chỉ cần nắm bắt một số kiến thức lập trình nhập môn, một nhà toán học tài giỏi có thể dễ dàng sử dụng nó.

Ngôn ngữ C là một "ngôn ngữ cấp cao mang đặc điểm của ngôn ngữ tự nhiên", có số lượng người dùng đông đảo. Do đó, ngôn ngữ này đã thể hiện trạng thái "phát triển hỗn loạn", thậm chí xuất hiện hiện tượng "biến đổi ngôn ngữ" chỉ trong thời gian ngắn – điểm này rất gần với sự tiến hoá của ngôn ngữ tự nhiên. Nếu trên thế giới có hai khu vực mạng cách biệt, ngôn ngữ C thậm chí có thể tiến hoá thành những "phương ngữ".

Hướng Sơn quen thuộc cả hai vấn đề này.

Trong lĩnh vực nội công, đây gọi là "nhất pháp thông, vạn pháp thông".

Hướng Sơn cảm giác, mình hẳn còn quen một người nữa như vậy. Người này có thể không có danh tiếng lừng lẫy, nhưng chắc chắn đứng ở ranh giới của tri thức nhân loại.

Hắn đã học hỏi được rất nhiều từ những người bạn của mình – ít nhất thì hắn tin là vậy.

Nhưng nếu suy nghĩ kỹ một chút, điều này dường như không hợp lý. Trong nhận thức của Hướng Sơn, một người tối đa cũng chỉ có thể đào sâu vào một lĩnh vực, còn những lĩnh vực khác chỉ chạm được đến bề mặt. Tri thức của nhân loại, từ lâu đã mở rộng đến mức không một "cá nhân" nào có thể nắm bắt toàn cảnh.

Hắn không nên vừa giỏi kỹ thuật cơ khí, vừa thành thạo lập trình, lại có trình độ toán học xuất sắc. Dù bạn bè của hắn thực sự đều là những người lợi hại đến vậy, không có lí do gì để hắn có thể lĩnh hội được hết sở trường của họ.

Người bạn thân thiết nhất trong những năm cuối đời của Einstein là nhà toán học vĩ đại Gödel. Nhưng mối quan hệ này cũng không khiến ông đạt đến trình độ toán học ngang bằng Gödel – ít nhất, trong mắt các nhà toán học thực thụ, trình độ toán học của Einstein chỉ ở mức “đủ dùng cho một nhà vật lý”.

Thế nhưng... điều kỳ lạ đó lại đã thật sự xảy ra.

Hướng Sơn tháo rời hệ điều hành của thiết bị đầu cuối, và thay thế trình biên dịch cũ bằng trình biên dịch của chính mình.

Dù là Java mộc mạc, bình dân như khúc nhạc "Hạ Lý Ba Nhân," hay C chỉ đơn thuần là nền tảng cho người mới; dù là Perl đẹp đẽ mà cô độc như những bài thơ cổ, hay Ruby đầy đam mê và nhiệt huyết như thơ hiện đại; dù là Python dễ học khó tinh nhưng sau khi đại thành thì gần như thần minh, hay Lisp gần với toán học nhất cũng gần với tạo hóa nhất; thậm chí là hậu duệ của chúng, đều không thích hợp để duy trì sự tồn tại của nội công.

Nguyên nhân rất đơn giản: chúng được tạo ra để “người khác có thể sử dụng”.

Những ngôn ngữ này được sinh ra để con người có thể hiểu được.

Điều duy nhất cản trở việc hiểu chúng là trí thông minh của người đọc.

Ngay cả khi ngôn ngữ C đã phát triển thành các "phương ngữ", điều đó vẫn chưa đủ bảo mật.

Đối với hiệp khách, một ngôn ngữ tốt không chỉ có thể giúp họ che giấu ý đồ, mà còn cho họ cơ hội phản công cuối cùng khi tường lửa bị phá vỡ, mã hoá bị phá giải, lớp đóng gói bị xé toạc, hay Nhâm Đốc Tiểu Chu Thiên bị gián đoạn.

Ngươi không thể hy vọng kẻ địch của mình chỉ là một tên ngốc – ngươi phải tìm cách khiến cho kẻ thù dù có thông minh đến đâu, nhưng nếu thiếu đi thông tin then chốt, thì cũng không thể nhanh chóng thấu hiểu những dòng mã không ngừng lưu chuyển trong chương trình của ngươi.

Mỗi trường phái nội công đều có trình biên dịch đặc thù, với các đặc điểm ngữ pháp và phương pháp đặt tên riêng biệt. Các ngôn ngữ lập trình cấp cao của chúng đều đi ngược lại hoàn toàn với tư duy thiết kế truyền thống của các ngôn ngữ lập trình trước đây.

Đấy là những ngôn ngữ được tạo ra để "người khác không thể hiểu được".

Nếu các lập trình viên truyền thống luôn nỗ lực tạo ra một loại "ngôn ngữ tốt nhất", tốt đến mức mọi người đều muốn sử dụng, thì ngôn ngữ do hiệp khách tạo ra lại hoàn toàn ngược lại, là "ngôn ngữ tệ nhất".

Đáng ngưỡng mộ hơn là, họ vẫn đảm bảo được rằng những ngôn ngữ "tệ nhất" này vẫn có thể được chấp nhận bởi máy móc.

Ở điểm này, Hướng Sơn có lòng tin tuyệt đối. Ban đầu, hắn cũng không hiểu sự tự tin này bắt nguồn từ đâu.

Sau khi dành hai giờ để viết lại trình biên dịch, hắn bắt đầu nhớ ra nhiều điều.

Căn cơ nội công của hắn là một ngôn ngữ vô danh, chỉ được lưu truyền trong phạm vi nhỏ.

Rất ít người biết ngôn ngữ này, căn bản là vì nó không được lưu hành rộng rãi. Người biết về nó đã ít, người có thể học và sử dụng nó lại càng ít hơn. Chỉ học ngôn ngữ này đã khó hơn cả việc học một môn ngoại ngữ, và việc sử dụng nó để lập trình chẳng khác gì sáng tác một bài thơ xuất sắc bằng một ngôn ngữ hoàn toàn xa lạ.

“Nói đi cũng phải nói lại, nếu nó quả thật khó đến vậy… thì làm thế nào mà mình học được?” Hướng Sơn tự hỏi: “Rốt cuộc mình là ai? Sao mình lại lợi hại như vậy?”

Khi hoàn thành viết lại trình biên dịch, Hướng Sơn cảm thấy như vừa mở khóa thêm một tầng kiến thức mới. Dữ liệu từ con chip kết nối não bộ của hắn tràn ra. Mã đè lên mã, những khối màu bất quy tắc hiện lên trên màn hình rồi biến mất khi thiết bị tự khởi động lại.

Đây không phải sáng tạo từ con số không. Dường như Hướng Sơn đã từng trải qua điều tương tự trước đây.

Có lẽ do ký ức khiếm khuyết, hắn không thể tái hiện hoàn chỉnh kỹ thuật khi ấy. Nhưng kể cả thế, hắn đã có đủ cơ sở lập mệnh.

Ngôn ngữ vô danh này, tuyệt đối là ngôn ngữ khó dùng nhất thế giới.

Nhưng trong mắt các hiệp khách, nó cũng là một trong những ngôn ngữ mạnh mẽ nhất.

* Lời tự thuật của tác giả

Về vấn đề hiểu lệch chi tiết kỹ thuật trong các chương cập nhật hai ngày qua, quả thực là lỗi của tôi. Khi viết "Tẩu tiến tu tiên", tôi tham khảo đều là sách khoa học có tiếng do đại lão trong giới viết. Còn phần miêu tả trong sách này, một nửa đến từ sách nhập môn lập trình tôi tự xem, một nửa là kết quả tôi lặn trong cộng đồng lập trình thấy "ôi cái miêu tả này hay quá!". Dù sao tôi không phải lập trình viên chuyên nghiệp, khó tránh khỏi phần "hiểu nhầm nói quá thành sự thật". Và giờ xem lại, sách nhập môn lập trình tôi xem cũng chưa chắc chính thức [và còn chưa chắc đã thực sự hiểu]. Về phần lịch sử ngành học, câu chuyện nhỏ ngành học trong sách, tôi nghĩ không có vấn đề, nhưng về chi tiết kỹ thuật lập trình hiện tại quả thực có một số vấn đề. Một số miêu tả tôi sẽ dần sửa theo góp ý của độc giả chuyên nghiệp.

Mục đích ban đầu của tôi, luôn là "bạn nghe tôi ở đây thổi phồng ngành học này hay thế nào, nếu bạn cảm thấy thú vị, tự tìm đường học và học có thành tựu, đó là phúc phận của bạn, cũng là công đức của tôi". Đối với tôi, chất đống chi tiết kỹ thuật trong sách, là một cách tạo cảm giác "chân thực" và "kinh dị". Nếu có chút hoang mang về một số chi tiết, mời mở bình luận chương. Các bạn độc giả chuyên nghiệp đương nhiên mạnh hơn tôi. Nếu cảm thấy câu chuyện của tôi thú vị, nên muốn học chút gì đó, vậy là tốt nhất. Còn thiết lập hư cấu của kẻ nghiệp dư cực khách như tôi, đừng tin hết.