Phân Biệt Trình Biên Dịch - Thông Dịch

Ebudezain

Ebudezain

  • kiến thức web
  • nodejs
  • react
  • php
    • php core
    • laravel
  • Java
    • java core
    • android
  • SEO
  • liên hệ

phân biệt trình biên dịch - thông dịch

phân biệt trình biên dịch - thông dịch 2020-09-30 6125 lượt xem Mục lục [ hide ]
  • Compiler và Interpreter
  • Ngôn ngữ biên dịch compiler
  • Ngôn ngữ thông dịch Interpreter
  • Cảnh báo hiểu nhầm về thông dịch và biên dịch
ahihi đồ ngốc trương thanh hùng nè

Compiler và Interpreter

hùng ebudezain

Hiện tại có rất nhiều ngôn ngữ lập trình tạo nên ứng dụng ( có thể là ứng dụng web, application, app mobile,... ) Một số ngôn ngữ thì được gọi là ngôn ngữ biên dịch (compiler) - phần mềm sẽ chuyển đổi code sang mã máy sau đó mới chạy được. Một số ngôn ngữ thì được gọi là ngôn ngữ thông dịch (Interpreter).

hùng ebudezainhùng ebudezainbài viết được viết bởi trương thanh hùng https://ebudezain.com/

Ngôn ngữ biên dịch compiler

ahihi đồ ngốc trương thanh hùng nèahihi đồ ngốc trương thanh hùng nèbài viết được viết bởi trương thanh hùng https://ebudezain.com/đọc dữ liệu hộ bốtôi thích vậy đó

Ngôn ngữ biên dịch là ngôn ngữ mà trước khi ra thành phẩm bạn phải biên dịch nó ra mã máy trước. Sẽ có rất nhiều ngôn ngữ vừa biên dịch vừa thông dịch, tùy vào cách chúng ta hiện thực nó. Như java là 1 ngôn ngữ vừa biên dịch vừa thông dịch.

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

Java là 1 ngôn ngữ vừa biên dịch vừa thông dịch, vì:

hùng đẹp traihùng ebudezaintôi thích vậy đóhùng thông minh lắmbài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng đẹp trai

Trình BIÊN DỊCH của Java (Java compiler), nó sẽ chuyển đổi các file code thành java byte-code. => cái này chưa phải mã máy. Rồi sau đó Java Virtual Machine (JVM) mới thông dịch chạy java byte code thành ngôn ngữ máy.

hùng đẹp traibài viết được viết bởi trương thanh hùng https://ebudezain.com/đọc dữ liệu hộ bốhùng đẹp traiahihi đồ ngốc trương thanh hùng nèbài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng ebudezain

1 ví dụ khác, C++ là ngôn ngữ biên dịch, khi chúng ta học C++ chúng ta phải có 1 trình soạn thảo để compile code đó mới chạy được. nhưng chúng ta cũng có thể biến C++ thành trình thông dịch bằng UnderC, Cint, ...

hùng ebudezainhùng đẹp trai

Ngôn ngữ thông dịch Interpreter

hùng ebudezainbài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng thông minh lắmđọc dữ liệu hộ bố

Với 1 số ngôn ngữ thông dịch chúng ta lại có 1 trình thông dịch, khi chương trình chạy thì trình thông dịch sẽ thực thi từng dòng code dẫn đến việc 1 trình biên dịch sẽ chiếm ưu thế tốc độ hơn trình thông dịch.

đọc dữ liệu hộ bố

bạn có thể tưởng tượng có 1 thằng nước ngoài ( đóng vai trò như hệ điều hành ) còn mình là người việt nam không biết nói tiếng anh ( đóng vai trò như 1 ngôn ngữ lập trình ). Trường hợp 1, bạn viết 1 bài văn xong bạn đem cho 1 đơn vị dịch thuật ra tiếng anh cho thằng kia đọc thì đơn vị dịch thuật là trình biên dịch từ tiếng việt ra tiếng anh. Trường hợp 2, bạn kêu đại 1 thằng nào đó đứng kế bên bạn, mỗi lần bạn nói kết thúc bằng dấu chấm phẩy thì nó dịch ra tiếng anh rồi nói lại cho thằng nước ngoài nghe. => mỗi lần nó nói cho thằng người nước ngoài nghe thì bạn im cho nó nói ( chậm hơn đó )

bài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng đẹp traihùng ebudezaintôi thích vậy đótôi thích vậy đóhùng ebudezainbài viết được viết bởi trương thanh hùng https://ebudezain.com/tôi thích vậy đóhùng thông minh lắm

ví dụ: PHP là ngôn ngữ thông dịch, Python là ngôn ngữ thông dịch với trình thông dịch Cython, nhưng pyThon sẽ là ngôn ngữ biên dịch nếu sử dụng implementation là PyPy

bài viết được viết bởi trương thanh hùng https://ebudezain.com/

Cảnh báo hiểu nhầm về thông dịch và biên dịch

hùng ebudezainhùng thông minh lắmhùng ebudezainhùng thông minh lắmđọc dữ liệu hộ bốahihi đồ ngốc trương thanh hùng nèahihi đồ ngốc trương thanh hùng nèhùng thông minh lắmtôi thích vậy đó

Các định nghĩa về thông dịch và biên dịch của riêng 1 ngôn ngữ nào đó thì khá mơ hồ. giống như Python có thể sẽ là biên dịch cũng có thể là thông dịch đó thôi, chỉ là chúng ta thường sử dụng trình thông dịch Python hơn thôi.

hùng đẹp traihùng đẹp traihùng thông minh lắmhùng thông minh lắmđọc dữ liệu hộ bốtôi thích vậy đóhùng thông minh lắmhùng đẹp trai

Ngôn ngữ bậc thấp chạy nhanh hơn ngôn ngữ bậc cao.

tôi thích vậy đótôi thích vậy đóbài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng thông minh lắm

Cái này mình thấy cũng đúng nhưng mà lý do thì không phải do biên dịch hay thông dịch mà ra đâu. Việc chạy chậm hơn là do kiểm tra nhiều hơn. Ví dụ ngôn ngữ PHP bạn được support về việc đóng mở kết nối db 1 cách tự động nhưng khi học java thầy cô lại khuyên phải mở kết nối db, sài xong nhớ đóng kết nối. điều này lại liên quan đến trình implementation

bài viết được viết bởi trương thanh hùng https://ebudezain.com/đọc dữ liệu hộ bốhùng thông minh lắmbài viết được viết bởi trương thanh hùng https://ebudezain.com/hùng đẹp traiahihi đồ ngốc trương thanh hùng nèđọc dữ liệu hộ bốđọc dữ liệu hộ bốđọc dữ liệu hộ bố

mô-tả-quá-trình-thực-thi-mã-code-compiler

tôi thích vậy đóbài viết được viết bởi trương thanh hùng https://ebudezain.com/ahihi đồ ngốc trương thanh hùng nèhùng ebudezainhùng thông minh lắmhùng thông minh lắmhùng ebudezainhùng thông minh lắmhùng thông minh lắmhùng ebudezain

Hình ảnh trên mô tả quá trình thực thi mã code compiler. Vậy bạn thấy có 2 hình tròn màu cam và màu xanh, màu cam ý nói code sẽ được chuyển đổi thành bytecode và chỉ thế thôi.

đọc dữ liệu hộ bốtôi thích vậy đóhùng ebudezainahihi đồ ngốc trương thanh hùng nèhùng đẹp traiahihi đồ ngốc trương thanh hùng nèđọc dữ liệu hộ bố

Vậy điều khác biệt của các ngôn ngữ biên dịch có cái nhanh hơn có cái chậm hơn nằm ở implementation của từng ngôn ngữ. implementation nào kiểm tra cho lắm vào thì đồng nghĩa với việc chấp nhận chậm hơn thôi. mà nó kiểm tra dùm mình thì sẽ thân thiện và dễ code hơn với lập trình viên.

hùng đẹp trai chủ đề kiến thức web

kiến thức web

2020-09-13
Tổng hợp những kiến thức chung của lập trình websi...
bài viết trong chủ đề Hướng dẫn cài đặt Homebrew trên macOS X

Hướng dẫn cài đặt Homebrew trên macOS X

2020-12-13
Homebrew là trình quản lý ứng dụng phần mềm phổ bi...
Cách phòng chống tấn công DDoS cho website laravel

Cách phòng chống tấn công DDoS cho website laravel

2020-11-19
tấn công DDoS là lại tấn công phổ biến nhất trên t...
Hướng dẫn cài đặt máy chủ giả lập NGINX PHP trên MacOS phần 2

Hướng dẫn cài đặt máy chủ giả lập NGINX PHP trên MacOS phần 2

2020-12-19
Trong phần trước mình đã giới thiệu cho các bạn cá...
xoá nginx trong mac

xoá nginx trong mac

2020-12-26
đôi khi bạn quá cay cú khi sử dụng nginx trong máy...
cách thêm ssh vào máy mac để remote lên vps

cách thêm ssh vào máy mac để remote lên vps

2020-12-30
thường thì trên windows chúng ta sẽ sử dụng 1 phần...
Thêm Google map vào website nhanh nhất

Thêm Google map vào website nhanh nhất

2020-11-12
Google Maps là một dịch vụ bản đồ số được Google p...
Mở terminal trong máy mac

Mở terminal trong máy mac

2020-12-13
Mở terminal trong máy mac
xử lý lỗi tràn bộ nhớ server vultr 5 đỗ nam trung mmap() failed: [12] Cannot allocate memory (allocated 722296832)

xử lý lỗi tràn bộ nhớ server vultr 5 đỗ nam trung mmap() failed: [12] Cannot allocate memory (allocated 722296832)

2020-11-21
lỗi mmap() failed: [12] Cannot allocate memory (al...
cài đặt nginx php postgre cho vps

cài đặt nginx php postgre cho vps

2020-10-16
hướng dẫn cài php trong vps. PHP là một ngôn ngữ l...
BEM trong front end cho người mới - Quy tắc BEM trong css SASS SCSS

BEM trong front end cho người mới - Quy tắc BEM trong css SASS SCSS

2021-03-25
BEM là viết tắt của Block-Element-Modifier. Nó rất...
Cách đặt quảng cáo Google Adsense trên website tối ưu nhất

Cách đặt quảng cáo Google Adsense trên website tối ưu nhất

2020-10-21
Cách đặt quảng cáo Google Adsense trên website tối...
Hướng dẫn thiết lập lazyload cho hình ảnh bằng lazysizes

Hướng dẫn thiết lập lazyload cho hình ảnh bằng lazysizes

2020-12-21
có nhiều thư viện xử lý lazyload nhưng hôm nay mìn...
Kiểm tra process nào đang chiếm port cho trước trên Mac OS

Kiểm tra process nào đang chiếm port cho trước trên Mac OS

2020-12-26
đôi khi bạn cài đặt nginx hoặc bất kỳ 1 phần mềm n...
backup database mongo trong vps linux

backup database mongo trong vps linux

2020-12-18
mongodb có hẳn 1 cơ chế dòng lệnh để backup lẹ lắm...
tạo và xóa db trong postgre vps ubuntu

tạo và xóa db trong postgre vps ubuntu

2020-11-21
Creating a PostgreSQL Database, tạo và xóa db tron...
bài viết mới Tiến hành CI cho project thực tế từ github sử dụng jenkins

Tiến hành CI cho project thực tế từ github sử dụng jenkins

2022-05-03
Trong phần trước mình đã giới thiệu về C...
cách viết script shell linux backup database postgre

cách viết script shell linux backup database postgre

2021-01-18
Dĩ nhiên backup sql thường xuyên là cần ...
tìm đường dẫn đến php.init trong linux mac ubuntu vps

tìm đường dẫn đến php.init trong linux mac ubuntu vps

2021-03-10
Cách thức tìm php.init trong linux
cách validate react functional - sử dụng react form input

cách validate react functional - sử dụng react form input

2021-08-10
sử dụng form validate
Cách xóa bộ nhớ đệm Git - GIT CACHE - git ignore not working

Cách xóa bộ nhớ đệm Git - GIT CACHE - git ignore not working

2021-06-15
đôi khi bạn lỡ add 1 file và push lên se...
Cách kiểm tra phiên bản hệ điều hành Android

Cách kiểm tra phiên bản hệ điều hành Android

2020-10-19
Cách kiểm tra phiên bản hệ điều hành And...
bài viết có liên quan Xem và Quản lý user - group và phân quyền trên linux

Xem và Quản lý user - group và phân quyền trên linux

2021-01-02
Mình là dev web và việc phân chia quyền ...
fix lỗi fatal: Authentication failed for https Git gỡ bỏ xác thực mật khẩu

fix lỗi fatal: Authentication failed for https Git gỡ bỏ xác thực mật khẩu

2021-08-23
Mọi thứ đang bình thường thì nay là 2021...
Cài đặt Flutter trên MacOS 2021

Cài đặt Flutter trên MacOS 2021

2021-03-01
Flutter là 1 framework do google phát tr...
Hướng dẫn cài đặt Nginx PHP-FPM trên MacOS sử dụng Homebrew

Hướng dẫn cài đặt Nginx PHP-FPM trên MacOS sử dụng Homebrew

2020-12-17
Trong quá trình phát triển web với php c...
Hướng dẫn cơ bản về cách kết hợp Laravel 8 với ReactJS React Router 2021

Hướng dẫn cơ bản về cách kết hợp Laravel 8 với ReactJS React Router 2021

2021-07-20
Chủ đề hướng dẫn Laravel 8 ReactJS, chún...
Run chương trình php với command

Run chương trình php với command

2020-09-30
Sau khi cài đặt xong xampp trong windows...

Ebudezain blog - chia sẽ kiến thức lập trình

Ebudezain Blog là trang chuyên chia sẻ các kiến thức về lập trình nhằm mang lại cho lập trình viên mới có kiến thức lập trình nền tảng nhất dưới góc nhìn của mình.

EBUDEZAIN

Ebudezain - chúng tôi là đơn vị thiết kế web uy tín, chất lượng, với chi phí tiết kiệm. Nếu bạn có nhu cầu thiết kế web, hãy gọi cho chúng tôi.

0674, Xã Bình Giã,Huyện Châu Đức Tỉnh Bà Rịa - Vũng Tàu,Việt Nam

+84343086424

thanhhung.dev@gmail.com

[JAVASCRIPT Cơ bản] javascript core [PHP TỔNG HỢP] các kiến thức lập trình về php DynamoDB WebRTC trong browser Nha Đam marketing lodash kiến thức database Flutter. redis WebRTC trong android CI CD React Native docker fix lỗi Unit test laravel kiến thức front-end Shell script GraphQL kiến thức web git cơ bản SEO - Search Engine Optimization Amazon Web Services (AWS) bảng giá website [PHP CƠ BẢN] PHP CORE - Lập trình căn bản với php nextjs android Load balancing [JAVA Cơ bản] java core laravel [NODEJS CƠ BẢN] platform nodejs - V8 JavaScript Runtime flutter tutorial javascript VScode linux grunt Unit test trong reactjs flutter cơ bản đến nâng cao react MOMENT JS công ty tui fix lỗi linh tinh flutter front-end developer thao tác với vps linux mongo aws React Native nâng cao php developer postgre single page applycation google drive Tự học React native Amazon Web Services (AWS) - Amplify github cli lưu trữ với google drive RESTful API loạt bài lập trình shell script bash script calendar kiến thức server linux sass scss - preprocessor macbook nodejs

Từ khóa » Trình Biên Dịch Là Gì Java