🥬
FreshForFresh
  • ✌️Xin chào!
  • Overview
    • 💡Data structures and Algorithms
    • 👀Programming
    • 🧠Database
    • 🦴Back-End
    • ✨Front-End
    • 💐Spring Framework
    • 🛠️Tool
  • Data structures and Algorithms
    • 🎰Data Type
    • 🗑️Garbage collection
    • 🧩Data structures
    • 🎲Algorithms
  • Programming
    • 🧮Compiler
      • 🤖Tại sao phải cần compiler?
      • 📠Java Virtual Machine
  • 📈Thread
  • 🔐Lock & Deadlock
  • 🏇Race condition & Data Race
  • 🧯Synchronized
  • 🗜️Blocking IO và Non Blocking IO Client Server Socket
  • 🌐Languages
    • 🎛️Programming Language
    • 📑Client-Side & Server-Side
    • ⁉️Why java? Why javascript?
  • 🗼Design pattern
    • 🎨Front-End Design Pattern
    • 🏗️Back End Design Pattern
      • 🐴with Java
      • 🦄with Spring Boot
      • 🐖with Modern Backend Development
      • 🐁with Microservice
  • 🍀Clean Code
    • 🌊Chương 1: Code sạch
    • 📐Chương 2: Quy tắc đặt tên rõ nghĩa
    • 🚧Chương 3: Cách viết hàm
    • 👻Chương 4: Comments thế nào cho chuẩn?
    • 🥳Chương 5: Định dạng code.
    • 😈Chương 6: Đối tượng và cấu trúc dữ liệu
    • 🐛Chương 7: Xử lí lỗi
    • ☦️Chương 8: Ranh giới code
    • 🧪Chương 9: Unit test
    • 🥂Chương 10: Lớp đối tượng
    • 🥡Chương 11: Code sạch cấp hệ thống
  • Database
    • 🐔Giới thiệu
    • 📰Các loại cơ sở dữ liệu
    • 🐘Các loại DBMS phổ biến
    • 🕵️‍♀️SQL và cách sử dụng với relational database
      • 👺Lệnh SQL
      • 🛢️JOIN trong SQL
      • 🛕GROUP BY trong SQL
      • 🐼ORDER BY trong SQL
      • 🐣Truy vấn con SUBQUERY trong SQL Server
      • 🏦Transaction Trong SQL
      • 🇲🇰ACID
    • ☢️Thiết kế cơ sở dữ liệu
    • 🕍Consistency and concurrency handling
      • 🔒Database locking
      • 🎮Concurrency Control
      • 🙀Isolation Level
    • 🎨Performance & Scability
      • ☝️Indexing
      • 👯‍♂️Partitioning
      • 💅Các tips tăng hiệu suất SQL
      • 🇲🇬Kiểm tra và Xác thực việc Sao lưu và Phục hồi CSDL
      • 🌠Database sharding
      • 🧘‍♂️REPLICATION
      • 😁Các vấn đề ảnh hưởng đến performance.
  • Back-End
    • 🔫API?
    • 🐕‍🦺Web Services
    • 💾Phân biệt API và web service
    • 🙆‍♂️Tìm hiểu về RestAPI
    • 🧦SOAP
    • ✈️GraphQL API
    • 📊Compared GraphQL & REST
    • 📄Phân biệt HTTP & HTTPS
    • 🚵Client & Server
    • 🇩🇲DOM
  • Front-End
    • 🦑User Interface (UI)
    • 🛰️State Management
  • Spring Framework
    • 🔐Spring Security
      • 🌅Đơn giản hoá Spring Security
      • 🌸Spring Security: Authentication and Authorization In-Depth
      • 🚻OAuth2 Basic
      • 🀄JWT + Spring Security Oauth
      • 📤Logout trong ứng dụng sử dụng bảo mật Oauth
      • 🔂Reset Password
      • 🎗️OAuth2 Remember Me với Refresh Token
      • ⛓️OAuth2 cho một Spring REST API
  • Network
    • 💸Mạng máy tính căn bản
  • Tool
    • 🦏Các câu lệnh Docker cơ bản
    • 🦧Github
      • 🐰Các lệnh Git cơ bản
      • 🐇Một số trường hợp khi sử dụng Git
    • 🏚️WebServer
      • 🪂Tổng quan về kiến trúc hệ thống
      • 🔃Cơ bản về WebServer Nginx
  • Tài nguyên
    • 👨‍🏫Course
    • 📖Docs
Powered by GitBook
On this page
  • Advantages
  • Disadvantages
  1. Programming
  2. Compiler

Tại sao phải cần compiler?

Chúng ta sẽ đề cập đến chức năng của compiler để giải thích cho câu hỏi này.

Compiler còn được gọi là trình biên dịch hay phần mềm biên dịch, đây là trình dịch có khả năng đọc các chương trình được viết bằng các ngôn ngữ cấp cao, tiếp đó biến đổi nó sang ngôn ngữ máy hay ngôn ngữ cấp thấp. Đồng thời, thực hiện báo cáo các lỗi đang tồn tại trong chương trình.

Khi làm việc cùng compiler, nhà lập trình sẽ nhận được sự hỗ trợ từ một số chức năng nổi bật như:

  • Quá trình biên dịch sẽ được hỗ trợ theo từng cách riêng biệt.

  • Tất cả các mã và biến sẽ được quản lý lưu trữ trực tiếp trong máy.

  • Cho phép người dùng tạo cấu trúc ngay bên trong bộ nhớ.

  • Có khả năng kết nối các tệp thành một định dạng thực thi.

  • Hỗ trợ tối ưu hóa trong một số kiến trúc máy tính song song.

  • Người dùng hoàn toàn có thể sử dụng kết hợp cùng các Software Productivity Tools khác.

  • Nhanh chóng và dễ dàng dịch toàn bộ chương trình sang ngôn ngữ khác.

  • Quá trình biên dịch mã nguồn nhanh chóng được thực hiện, đồng thời phát hiện kịp thời các lỗi tồn tại trong mã nguồn.

  • Dễ dàng đọc, phân tích các chương trình tương đương về mặt ngữ nghĩa.

  • Check lỗi cú pháp và kiểu dữ liệu một cách linh hoạt.

  • …

Advantages

  • Không xảy ra tình trạng dịch ngược mã nguồn.

  • Compiler có độ tin cậy cao, cùng tính năng bảo mật tương đối tốt.

  • Hầu hết chương trình sẽ được thực thi nhanh chóng hơn ngôn ngữ thông dịch.

  • Hỗ trợ cả Multi-thread và Transaction.

Disadvantages

  • Khó thực hiện trên các nền tảng khác nhau.

  • Việc thực hiện một compiler với tính chính xác cao để dịch toàn bộ chương trình sang mã máy là điều không mấy dễ dàng.

PreviousCompilerNextJava Virtual Machine

Last updated 1 year ago

🧮
🤖