Syntax là gì ? Lỗi cú pháp trong ngôn ngữ lập trình (syntax error)

Posted on Công Nghệ, Blog Chia Sẻ 1053 lượt xem

Bạn đã nắm được syntax là gì chưa, bạn đã biết những Lỗi cú pháp trong ngôn ngữ lập trình (syntax error) như thế nào chưa. Hãy cùng ngu công nghệ tìm hiểu chi tiết hơn trong bài viết này, để có những cái nhìn sâu rộng hơn nhé.

Syntax là gì ?

Syntax là gì? (cú pháp), nó là cấu trúc hoặc ngữ pháp của ngôn ngữ lập trình. Nó sinh ra để trả lời cho câu hỏi: “Làm thế nào để xây dựng một câu ngữ pháp hợp lệ ”

Trong lập trình sẽ không thể tránh khỏi những lỗi cú pháp, và khi đó ta sẽ thấy xuất hiện từ Syntax Error. Vậy tại sao nó lại hiển thị từ Syntax Error,  điều đó ngoài biểu thị những ý nghĩa gì.

Chỉ khi hiểu về cụm từ này thì ta mới có thể giải quyết được vấn đề đang xảy ra nhanh nhất về hiệu quả nhất. Vậy hãy cùng theo chân bài viết Syntax là gì? của chúng tôi để giải đáp tiếp những thắc mắc nào.

Syntax là gì? Cấu trúc & Các cấp độ của Syntax
Syntax là gì? Cấu trúc & Các cấp độ của Syntax

Theo Syntax thì tất cả các ngôn ngữ đều có ngữ pháp và được sắp xếp theo một quy định nhất định. Vậy cấu trúc lệnh syntax là gì, hãy cùng tìm hiểu tiếp nhé.

Cấu trúc câu lệnh theo Syntax như sau 

Theo Syntax thì một câu lệnh thông thường phải đảm bảo các cấu trúc về cú pháp như sau:

  • Mở đầu bằng ký tự hoặc một từ riêng biệt để định danh câu lệnh
  • Xác định trật tự của các toán tử, hệ thống các ký tự được xây dựng để diễn tả câu lệnh hoặc các tham số
  • Tất cả mọi ngôn ngữ lập trình đều nhất thiết phải có ký tự kết thúc câu lệnh, và đa phần các ký tự được dùng thường là dấu chấm phẩy (“;”)
  • Số lượng cú pháp của mỗi câu lệnh phải tuân theo yêu cầu của từng ngôn ngữ lập trình

Tùy vào mỗi loại cú pháp được thiết kế mà mỗi câu lệnh sẽ có cho mình một giá trị riêng biệt. Những giá trị này sẽ được dùng một hoặc nhiều mục đích khác nhau. Nhưng nhìn một cách tổng quan, mục đích chung nhất giữa các loại câu lệnh chính là tính khả thi khi đưa vào sử dụng thực tiễn của chúng.

Syntax là gì? Cấu trúc & Các cấp độ của Syntax
Syntax là gì? Cấu trúc & Các cấp độ của Syntax

Xem thêm : Tường lửa là gì? Cách sử dụng tường lửa hiệu quả nhất

Dưới đây chúng tôi sẽ cung cấp thêm thông tin Syntax là gì cho các bạn và một số ví dụ cụ thể

Ngôn ngữ lập trình C

  • Phân tách câu lệnh bằng dấu chấm phẩy.
  • Đặt biểu thức điều kiện câu lệnh IF bên trong dấu ngoặc đơn.
  • Nhóm nhiều câu lệnh được hợp thành một câu lệnh duy nhất, được thể hiện thông qua cách đặt chúng trong dấu ngoặc nhọn.
  • Các kiểu dữ liệu và biến cần phải được khai báo đầu trước câu lệnh được thực thi sớm nhất. (Tính năng này bị bỏ trong C99. Sau này cho phép khai báo kiểu hỗn hợp)

Ngôn ngữ lập trình PHP

  • Một tập lệnh PHP sẽ được bắt đầu bằng thẻ <?php được kết thúc bằng thẻ ?>
  • Dấu câu phân cách của PHP là  <?php và ?>
  • Câu lệnh PHP kết thúc bằng dấu chấm phẩy.
  • Tên biến trong PHP nhìn chung thường được viết hoa.
  • Các keyword, function và class name sẽ không thể phân biệt chữ hoa hoặc chữ thường.

Syntax có những cấp độ nào

Nhìn chung, Syntax là gì? hay cú pháp ngôn ngữ máy tính thường được phân biệt thành 3 cấp độ:

  • Cấp độ 1: Từ – cấp độ từ vựng, xác định ký tự hình thành mã thông báo.
  • Cấp độ 2: Cụm từ – cấp độ ngữ pháp, nói một cách khác là xác định cách mà thể có thể tạo thành một cụm từ.
  • Cấp độ 3: Bối cảnh – xác định đối tượng hoặc tên tham chiếu đến, nếu các loại đó là hợp lệ.

Ưu điểm của sự phân biệt theo cách này là nó sẽ mang lại tính modun,điều đó cho phép mỗi mức được mô tả xử lý riêng biệt và độc lập trong qua trình xử lý. 

Đầu tiên, lexer biến chuỗi ký tự tuyến tính thành các chuỗi mã thông báo tuyến tính. Điều này có thể hiểu đơn giản giống như việc phân tích từ vựng.

Syntax là gì? Cấu trúc & Các cấp độ của Syntax
Syntax là gì? Cấu trúc & Các cấp độ của Syntax

Xem thêm : TFTP là gì? Hướng dẫn cài đặt và sử dụng TFTP Server

Tiếp đó, trình phân tích cú pháp sẽ biến chuỗi tuyến tính của các mã thông báo thành một cây phân tích Syntax, hay còn được gọi với cái tên là phân tích cú pháp.

Sau đó, đi một vòng để phân tích ngữ cảnh giải quyết tên và kiểm tra các loại. Modun này đôi khi có thể xảy ra, nhưng trong nhiều ngôn ngữ trong thế giới thực các bước đầu tiên phụ thuộc vào một yếu tố dưới đây.

Một ví dụ điển hình như h.ac.k lexer trong C, là vì mã hóa bị phụ thuộc vào ngữ cảnh.

Ngay cả trong những trường hợp này, phân tích cú pháp nhìn chung được coi như gần đúng với những mô hình lý tưởng.

Về bản thân giai đoạn cú pháp chúng ta có thể chia thành 2 phần đó là: cây phân tích cú pháp và cây cú pháp cụ thể. Mặc dù được xác định bởi ngữ pháp, nhưng nói chung là quá chi tiết để có thể sử dụng thực tế và cây cú pháp trừu tượng (AST).

Điều này giúp đơn giản hóa thành một hình thức mà có thể sử dụng được AST và những bước phân tích theo ngữ cảnh.

AST và các bước phân tích theo ngữ cảnh, nó có thể được coi là một dạng phân tích ngữ nghĩa vì chúng bổ sung ý nghĩa diễn giải cho cú pháp.

Hoặc hiểu theo một cách khác thì triển khai thủ công, không chính thức các quy tắc cú pháp sẽ gây cản trở thực hiện khi mô tả hoặc triển khai một cách chính thức.

Còn các cấp thường tương ứng với các cấp trong hệ thống phân cấp của chomsky. Các từ thuộc ngôn ngữ thông thường, được chỉ định trong ngữ pháp ,từ vựng, thường được xem như là biểu thức chính quy.

Syntax là gì? Cấu trúc & Các cấp độ của Syntax
Syntax là gì? Cấu trúc & Các cấp độ của Syntax

Các cụm từ ở ngôn ngữ không ngữ cảnh (CFL), nói chung là ngôn ngữ không có ngữ cảnh xác định (DCFL), chỉ định trong ngữ pháp cấu trúc cụm từ đó là ngữ pháp loại 2, chúng thường được đưa ra dưới hình thức quy tắc sản xuất ở dạng Backus Naur (BNF).

Các ngữ pháp cụm từ thường được chỉ định cụ thể nhất trong các ngữ pháp hạn chế hơn nhiều so với các ngữ pháp mà hoàn toàn không có ngữ cảnh. Điều này sẽ giúp cho chúng dễ dàng hơn trong việc phân tích được cú pháp. 

Về nguyên tắc, cấu trúc theo ngữ cảnh có thể được mô tả bằng những ngữ pháp nhạy cảnh với ngữ cảnh và được phân tích một cách tự động bằng các phương tiện hoặc ngữ pháp thuộc tính.

Bước này nhìn chung được thực hiện theo một cách thủ công, thông qua những quy tắc phân giải tên, kiểm tra kiểu và được thực hiện thông qua bảng ký hiệu nơi mà lưu trữ tên và các loại cho từng phạm vi.

Lỗi cú pháp trong ngôn ngữ lập trình (syntax error)

Lỗi cú pháp, hay lỗi biên dịch là một trong những lỗi thường gặp nhất trong lập trình. Nó là một loại lỗi cơ bản và rất dễ để xử lý. Nguyên nhân gây ra lỗi này thường do bạn viết sai cấu trúc của ngôn ngữ lập trình. Các lỗi thiếu ký tự, thiếu dấu kết thúc hay sử dụng sai định dạng ký tự đều có thể gây ra syntax error.

Lỗi cú pháp là một trong số những lỗi cơ bản trong lập trình
Lỗi cú pháp là một trong số những lỗi cơ bản trong lập trình

Khi gặp lỗi này, chúng ta sẽ không thể thực thi chương trình và các trình biên dịch code sẽ báo lỗi ở dòng code sai giúp bạn dễ dàng sửa hơn. Hiện nay, khi trình soạn thảo hoặc IDE như Visual Studio, Eclipse, Android Studio hay NetBean đều được hỗ trợ xử lý lỗi cú pháp một cách nhanh chóng. Chính vì thế, chúng ta không cần phải quá lo lắng nếui gặp lỗi như vậy.

Trên đây là một số giải thích cơ bản về định nghĩa syntax, sự khác biệt giữa syntax và syntactic sugar, cũng như một vài điểm cơ bản về lỗi cú pháp thường gặp trong lập trình. Hy vọng thông qua bài viết này, bạn sẽ hiểu hơn về định nghĩa syntax là gì, cũng như có thêm kiến thức cơ bản về cú pháp trong ngôn ngữ lập trình để thực hiện lập trình tốt hơn.

Như vậy trên đây chúng tôi đã lý giải toàn diện về Syntax là gì?, mong rằng qua bài đọc bạn đã giải quyết được phần nào thắc mắc và tích lũy cho mình những kiến thức. Cảm ơn các bạn đã theo dõi bài viết của chúng tôi!

Leave a Reply

Your email address will not be published. Required fields are marked *

error: