🌐Languages

Sơ khai về programming

Lịch sử của programming

Khi các natural programming languages ban đầu được phát triển, chúng được chia thành 2 loại lớn tuỳ vào cách giao tiếp với phần cứng bên dưới đây:

  • Compiler: chương trình hoàn chỉnh được viết bằng syntax gần với tiếng anh tự nhiên với compiler và ngôn ngữ sau đó sẽ được compiles(hay translate) toàn bộ thành machine code. Compiled code sau đó sẽ chạy trên hardware.

  • Interpreters: mọi high-level code được interpreted thành machine code một cách nhanh chóng. Các câu lệnh được viết ra sẽ được phần cứng chạy ngay lập tức trước khi nhìn vào câu lệnh tiếp theo.

Compiler và Interpreter

CompilerInterpreter

Các bước lập trình

  • Tạo chương trình.

  • Phân tích ngôn ngữ và báo lỗi khi có lệnh sai.

  • Trường hợp không lỗi, Compiler chuyển đổi code nguồn thành Machine Code.

  • Liên kết các file code khác nhau thành chương trình có thể chạy.

  • Cuối cùng chạy một chương trình.

Các bước lập trình:

  • Tạo chương trình.

  • Không yêu cầu liên kết file hoặc tạo Machine Code.

  • Chạy lần lượt từng lệnh nguồn.

Lưu Machine Language dưới dạng Machine Code trên đĩa.

Không lưu Machine Language.

Code biên dịch chạy nhanh hơn code thông dịch.

Code thông dịch chạy chậm hơn code biên dịch.

Mô hình hoạt động cơ bản là Linking-Loading.

Mô hình hoạt động cơ bản là thông dịch.

Tạo kết quả dưới dạng (.exe).

Không tạo đầu ra.

Mọi thay đổi trong chương trình nguồn sau khi biên dịch đều cần biên dịch lại toàn bộ mã.

Bất kỳ thay đổi nào trong chương trình nguồn trong quá trình dịch không cần dịch lại toàn bộ mã.

Lỗi được hiển thị đồng thời trong Compiler sau khi biên dịch.

Lỗi được hiện trên từng dòng.

Có thể xem trước mã, điều này giúp chạy mã nhanh hơn nhờ thực hiện Tối ưu hóa.

Hoạt động theo dòng làm việc của code, đó là lý do tại sao Tối ưu hóa chậm hơn một chút so với Trình biên dịch.

Không cần code nguồn để chạy sau đó.

Cần code nguồn để chạy.

Chạy chương trình chỉ diễn ra sau khi được biên dịch hoàn toàn.

Chạy chương trình sau khi đánh giá hay kiểm tra mỗi dòng code.

Compiler mất nhiều thời gian phân tích code nguồn.

Interpreter mất ít thời gian phân tích code nguồn hơn.

Compiler dùng nhiều CPU hơn.

Interpreter dùng ít CPU hơn.

Chủ yếu dùng Compilers trong Production Environment.

Chủ yếu dùng Interpreters trong Programming & Development Environments.

Code đối tượng được lưu để dùng trong tương lai.

Không lưu code đối tượng để sử dụng cho tương lai.

C, C++, C#, Java ... là các ngôn ngữ dựa trên Compiler.

Python, Ruby, Perl, SNOBOL, MATLAB,... là ngôn ngữ dựa trên Interpreter.

Last updated