Mã giả

Cú pháp

Như điều cái tên nói lên, mã giả nói chung không thực sự tuân theo quy tắc cú pháp của một ngôn ngữ cụ thể nào; không có dạng chuẩn hệ thống, mặc dù bất kỳ người viết cụ thể nào nói chung cũng sẽ mượn hình thức của một ngôn ngữ nào đó. Những ngôn ngữ thường được mượn là Pascal, BASIC, C, Java, Lisp, và ALGOL. Những chi tiết không thích hợp với giải thuật (như mã quản lý bộ nhớ) thường bị bỏ đi. Những khối mã, như mã nằm trong một vòng lặp, có thể được mô tả chỉ bằng một câu viết bằng ngôn ngữ tự nhiên.
Tùy vào người viết, mã giả do đó rất khác nhau về phong cách, từ sự bắt chước gần như chính xác một ngôn ngữ lập trình có thật, đến một bản mô tả mà đối với người khác đó gần như là một bản văn xuôi được định dạng.

Ứng dụng

Sách giáo khoa và bài báo khoa học liên quan đến khoa học máy tính và tính toán số thường sử dụng mã giả để mô tả giải thuật, để cho tất cả các lập trình viên đều có thể hiểu chúng, mặc dù tất cả họ không cùng biết một ngôn ngữ lập trình như nhau. Trong sách giáo khoa, thường có một đoạn giới thiệu đi kèm giải thích về những quy ước cụ thể được sử dụng. Mức độ chi tiết của những ngôn ngữ như vậy trong một số trường hợp có thể gần đạt đến những ngôn ngữ đa mục đích hình thức hóa — ví dụ, cuốn phôi thai của Knuth The Art of Computer Programming (Nghệ thuật lập trình máy tính) mô tả những giải thuật bằng ngôn ngữ assembly được mô tả đầy đủ dành cho những vi xử lý không tồn tại.
Một lập trình viên khi cần hiện thực một giải thuật cụ thể nào đó, đặc biệt là một giải thuật mà họ chưa biết, thường bắt đầu bằng một bản mô tả bằng mã giả, rồi sau đó chỉ đơn giản là "dịch" bản mô tả đó thành ngôn ngữ lập trình tương ứng và chính sửa để giao tiếp đúng với toàn bộ phần chương trình. Các lập trình viên cũng thường bắt đầu một dự án bằng cách thảo ra những đoạn mã bằng mã giả trên giấy trước khi viết chúng bằng ngôn ngữ thật sự của nó, là một cách tiếp cận có hệ thống theo dạng top-down (từ trên xuống).

Mã giả dạng toán học

Trong tính toán số, mã giả thường bao gồm ký hiệu toán học, thường từ lý thuyết tập hợp và ma trận, trộn lẫn với các cấu trúc điều khiển của một ngôn ngữ lập trình quy ước, và có thể cũng có mô tả bằng ngôn ngữ tự nhiên. Đây là một dạng ký hiệu cô đọng và thường không chính thức, giúp cho nhiều người có được học về toán có thể hiểu được, và thường được dùng để mô tả giải thuật toán học.
Thông thường những kiểu chữ không phải ASCII được dùng trong các phương trình toán học, ví dụ bằng mã đánh dấu TeX hoặc MathML, hoặc trình soạn thảo công thức tốn phí.
Mã giả theo kiểu toán học đôi khi còn được gọi là mã tiếng bồi (pidgin code), ví dụ ALGOL bồi (nguồn gốc của khái niệm), Fortran bồi, BASIC bồi, Pascal bồi, và C bồi.

Biên dịch hoặc thông dịch máy

Người ta thường đề nghị rằng những ngôn ngữ lập trình trong tương lại sẽ ngày càng tương tự như mã giả hoặc ngôn ngữ tự nhiên hơn là những ngôn ngữ hiện tại; ý tưởng đó là tốc độ máy tính ngày càng tăng và những tiến bộ trong công nghệ trình biên dịch sẽ cho phép máy tính tạo ra những chương trình từ những bản mô tả giải thuật, thay vì yêu cầu chi tiết phải do con người hiện thực.
Đã có nhiều cố gắng nhàm mang những yếu tố ngôn ngữ tự nhiên vào lập trình máy tính, và nó đã tạo ra những ngôn ngữ lập trình như HyperTalk, Lingo, AppleScript, SQL và Inform. Trong những ngôn ngữ này, dấu ngoặc đơn và những ký tự đặc biệt khác được thay thế bằng giới từ, dẫn đến một đoạn mã nói lên được nhiều điều. Điều này có thể khiến một người hiểu dễ dàng hơn mà không cần có kiến thức về ngôn ngữ và có thể cùng để học ngôn ngữ. Tuy nhiên, sự tương tự với ngôn ngữ tự nhiên thường chỉ là bề ngoài chứ chưa phải là thực chất. Các quy tắc cú pháp cũng chỉ nghiêm ngặt và hình thức như trong ngôn ngữ quy ước, và không khiến cho việc phát triển phần mềm dễ dàng hơn.