Sự khác biệt giữa kịch bản và chương trình là gì? Hầu hết thời gian tôi nghe nói rằng một tập lệnh đang chạy, đó không phải là một chương trình? Tôi hơi khó hiểu, có ai có thể giải thích thêm về điều này không?
Câu trả lời:
Tôi có một cái nhìn khác.
"Tập lệnh" là mã hoạt động trên một số hệ thống theo cách thức bên ngoài hoặc độc lập và có thể bị xóa hoặc vô hiệu hóa mà không cần vô hiệu hóa hệ thống đó.
"Chương trình" là mã cấu thành một hệ thống.Mã của chương trình có thể được viết theo cách mô-đun, với sự tách biệt tốt các mối quan tâm, nhưng mã về cơ bản là nội bộ và phụ thuộc vào chính hệ thống.
Tập lệnh thường được diễn giải, nhưng không phải lúc nào cũng vậy. Các chương trình thường được biên dịch, nhưng không phải lúc nào cũng vậy.
Đối với tôi, sự khác biệt chính là một tập lệnh được thông dịch , trong khi một chương trình được thực thi (tức là nguồn được biên dịch đầu tiên và kết quả của quá trình biên dịch đó được mong đợi) .
Wikipedia có vẻ đồng ý với tôi về điều này:
Tập lệnh :
"Tập lệnh" khác với mã cốt lõi của ứng dụng, thường được viết bằng một ngôn ngữ khác và thường được tạo ra hoặc ít nhất là sửa đổi bởi người dùng cuối.
Các tập lệnh thường được diễn giải từ mã nguồn hoặc mã bytecode, trong khi các ứng dụng mà chúng kiểm soát được biên dịch theo cách truyền thống sang mã máy gốc.
Chương trình có dạng thực thi mà máy tính có thể sử dụng trực tiếp để thực hiện các lệnh.
Chương trình tương tự ở dạng mã nguồn mà con người có thể đọc được, từ đó các chương trình thực thi được bắt nguồn (ví dụ: được biên dịch)
Thông thường, script là một công cụ nhẹ, được xây dựng nhanh chóng, có thể sử dụng một lần. Nó thường được diễn giải, không được biên dịch. Python và bash là những ví dụ về ngôn ngữ được sử dụng để xây dựng các tập lệnh.
Một chương trình được xây dựng bằng một ngôn ngữ đã biên dịch, như C hoặc C ++ và thường chạy nhanh hơn một tập lệnh vì lý do đó. Các công cụ lớn hơn thường được viết dưới dạng "chương trình" hơn là tập lệnh - các công cụ nhỏ hơn dễ dàng phát triển dưới dạng tập lệnh hơn, nhưng các tập lệnh có thể khó sử dụng khi chúng lớn hơn. Ứng dụng và ngôn ngữ hệ thống (những ngôn ngữ được sử dụng để xây dựng chương trình / ứng dụng) có các công cụ giúp quản lý sự phát triển đó dễ dàng hơn.
Bạn thường có thể xem một tập lệnh trong trình soạn thảo văn bản để xem nó hoạt động như thế nào. Bạn không thể làm điều đó với một chương trình thực thi - các hướng dẫn của chương trình này đã được biên dịch thành mã bytecode hoặc ngôn ngữ máy khiến con người rất khó hiểu nếu không có các công cụ chuyên dụng.
Lưu ý số lượng "oftens" và "thườngs" ở trên - các thuật ngữ là vô nghĩa và đôi khi bị gạch chéo.
Xem:
Sự khác biệt giữa chương trình và tập lệnh
Script cũng là một chương trình nhưng không có lớp mờ che giấu (mã nguồn) trong khi chương trình là một chương trình có quần áo, bạn không thể thấy mã nguồn của nó trừ khi nó có thể phân rã được.
Tập lệnh cần các chương trình khác để thực thi chúng trong khi các chương trình không cần.
Một "chương trình" nói chung, là một chuỗi các lệnh được viết để một máy tính có thể thực hiện một số tác vụ .
"Tập lệnh" là mã được viết bằng ngôn ngữ kịch bản. Một ngôn ngữ kịch bản không là gì ngoài một loại ngôn ngữ lập trình trong đó chúng ta có thể viết mã để điều khiển một ứng dụng phần mềm khác .
Trên thực tế, ngôn ngữ lập trình có hai loại:
a. Ngôn ngữ viết kịch bản
b. Ngôn ngữ biên dịch
Vui lòng đọc phần này: Ngôn ngữ viết kịch bản và biên dịch
Các tập lệnh thường được thông dịch (bởi một tệp thực thi khác).
Một chương trình thường là một chương trình thực thi được biên dịch độc lập theo đúng nghĩa của nó (mặc dù nó có thể có các phụ thuộc thư viện), bao gồm mã máy hoặc mã byte (đối với các chương trình được biên dịch đúng lúc)
Theo quan điểm của tôi, điểm khác biệt chính giữa kịch bản và chương trình:
Tập lệnh có thể được sử dụng với các công nghệ khác. Ví dụ: Các tập lệnh PHP, Javascrip, v.v. có thể được sử dụng trong HTML.
Các chương trình là những đoạn mã độc lập không bao giờ có thể được nhúng vào các công nghệ khác.
Nếu tôi sai ở bất kỳ chỗ nào, xin hãy sửa cho tôi. Tôi sẽ ngưỡng mộ sự sửa chữa của bạn.
.php
. Bên trong chương trình của bạn, bạn có thể in mã html. Bạn có thể làm tương tự với python, java, C #, C, v.v. Tất cả chúng (nếu là chương trình web) đều tạo ra mã html.
Thực sự có hai chiều giữa kịch bản và thực tế chương trình:
Liệu ngôn ngữ có đủ mạnh, đặc biệt là với các hoạt động chuỗi, để cạnh tranh với bộ xử lý macro như posix shell và đặc biệt là bash không? Nếu nó không tốt hơn so với việc chạy một số chức năng thì không có nhiều điểm trong việc sử dụng nó.
Ngôn ngữ có thuận tiện và bắt đầu nhanh chóng không? Java, Scala, JRuby, Closure và Groovy đều là những ngôn ngữ mạnh mẽ, nhưng Java yêu cầu rất nhiều bản soạn sẵn và JVM mà chúng yêu cầu chỉ mất quá nhiều thời gian để khởi động.
OTOH, Perl, Python và Ruby đều khởi động nhanh chóng và có các hoạt động xử lý chuỗi mạnh mẽ (và hầu hết mọi thứ-khác-xử lý), vì vậy chúng có xu hướng chiếm các tập lệnh đôi khi bị chê bai nhưng không dễ bị xâm phạm "thế giới. Hóa ra họ cũng chạy tốt toàn bộ các chương trình truyền thống.
Còn lại trong tình trạng lấp lửng là các ngôn ngữ như Javascript, không được sử dụng để viết kịch bản nhưng có thể có. Cập nhật: vì nó đã được viết node.js đã được phát hành trên nhiều nền tảng. Trong các tin tức khác, câu hỏi đã được đóng lại. "Chà chà."
IMO Script - là loại lệnh mà chương trình phải chạy Chương trình - là loại lệnh mà phần cứng phải chạy
Mặc dù tôi đoán mã byte .NET / JAVA là tập lệnh theo định nghĩa này