ภาษาสคริปต์กับภาษาโปรแกรม


347

ทุกคนสามารถอธิบายความแตกต่างระหว่างภาษาสคริปต์และภาษาโปรแกรมได้ไหม
นอกจากนี้คุณยังสามารถระบุตัวอย่างบางอย่างสำหรับแต่ละ ฉันใช้ Google เป็นจำนวนมาก แต่ฉันมักพบคำตอบที่ดีที่สุดจาก Stack Overflow

คำตอบ:


466

ภาษาสคริปต์เป็นภาษาการเขียนโปรแกรมที่ไม่ต้องการขั้นตอนการรวบรวมที่ชัดเจน

ตัวอย่างเช่นในกรณีปกติคุณต้องคอมไพล์โปรแกรม C ก่อนจึงจะสามารถรันได้ แต่ในกรณีปกติคุณไม่จำเป็นต้องรวบรวมโปรแกรม JavaScript ก่อนที่จะเรียกใช้ ดังนั้นบางครั้ง JavaScript ก็เรียกว่า "สคริปต์" ภาษา

บรรทัดนี้เริ่มมีความพร่ามัวมากขึ้นเนื่องจากการรวบรวมสามารถทำได้อย่างรวดเร็วด้วยฮาร์ดแวร์ที่ทันสมัยและเทคนิคการรวบรวมที่ทันสมัย ตัวอย่างเช่น V8 ซึ่งเป็นเอ็นจิ้น JavaScript ใน Google Chrome และใช้งานนอกเบราว์เซอร์เป็นจำนวนมากเช่นกันจริง ๆ แล้วรวบรวมโค้ดจาวาสคริปต์ในทันทีเพื่อให้เป็นรหัสเครื่องแทนที่จะตีความมัน (อันที่จริง V8 เป็นคอมไพเลอร์สองเฟสที่ปรับให้เหมาะสม)

โปรดทราบด้วยว่าภาษานั้นเป็นภาษา "การเขียนสคริปต์" หรือไม่นั้นสามารถเกี่ยวกับสภาพแวดล้อมได้มากกว่าภาษานั้น ๆ ไม่มีเหตุผลที่คุณไม่สามารถเขียนล่าม C และใช้มันเป็นภาษาสคริปต์ (และผู้คนมี) นอกจากนี้ยังไม่มีเหตุผลที่คุณไม่สามารถรวบรวม JavaScript ไปยังรหัสเครื่องและเก็บไว้ในไฟล์ที่ปฏิบัติการได้ (และผู้คนมี) ภาษา Ruby เป็นตัวอย่างที่ดีของสิ่งนี้: การใช้งานดั้งเดิมถูกตีความทั้งหมด (ภาษา "สคริปต์") แต่ตอนนี้มีคอมไพเลอร์หลายตัวสำหรับมัน

ตัวอย่างบางส่วนของภาษา "การเขียนสคริปต์" (เช่นภาษาที่ใช้แบบดั้งเดิมโดยไม่มีขั้นตอนการรวบรวมอย่างชัดเจน):

  • Lua
  • JavaScript
  • VBScript และ VBA
  • Perl

และความรู้แค่หางอึ่งเล็ก ๆ ของคนที่ใช้แบบดั้งเดิมกับขั้นตอนการรวบรวมที่ชัดเจน:

  • C ++
  • D
  • ชวา (แต่โปรดทราบว่า Java ถูกคอมไพล์ด้วย bytecode ซึ่งจะถูกตีความและ / หรือคอมไพล์ใหม่ตอนรันไทม์)
  • ปาสคาล

... และจากนั้นคุณมีสิ่งต่าง ๆ เช่น Python ที่อยู่ในค่ายทั้งสอง: Python ถูกใช้อย่างกว้างขวางโดยไม่มีขั้นตอนการคอมไพล์ แต่การติดตั้งหลัก (CPython) ทำได้โดยการคอมไพล์ไปยัง bytecode on-the-fly VM และมันสามารถเขียน bytecode ออกไปยังไฟล์.pycได้.pyo ) เพื่อใช้งานได้โดยไม่ต้องคอมไพล์ใหม่

นั่นเป็นเพียงไม่กี่อย่างถ้าคุณทำวิจัยบางอย่างคุณสามารถหามากขึ้น


1
คำอธิบายที่ยอดเยี่ยม!
Gladiator

48
@ mg30rg: Heh - การเขียนสคริปต์ทั้งหมดสามารถเขียนโปรแกรม "ของจริง" ได้ (คุณคงไม่เชื่อว่าสคริปต์ทุบตีบางอย่างที่ฉันเคยเห็น ... ) ฉันคิดว่าวิธีที่ง่ายที่สุดในการกำหนด (และอีกครั้งสิ่งนี้ไม่ใช่ภาษามันเป็นสิ่งที่มีสภาพแวดล้อม) คือ: สภาพแวดล้อมรันไทม์ เห็นรหัสที่มา? ถ้าเป็นเช่นนั้นฉันจะเรียกว่า "สคริปต์" ถ้าไม่ฉันจะไม่ทำ ดังนั้นในกรณีดังกล่าว JavaScript ที่ใช้เบราว์เซอร์คือ "การเขียนสคริปต์" เพราะแม้ว่าเครื่องยนต์เช่น V8 จะคอมไพล์มันแบบทันที แต่แหล่งที่มาก็ยังคงส่งมอบให้กับสภาพแวดล้อมรันไทม์ สคริปต์เชลล์ในทำนองเดียวกัน ซอร์สของโปรแกรม C ดั้งเดิมไม่ได้ถูกส่งไปยังรันไทม์
TJ Crowder

2
@ mg30rg: แต่อีกครั้งเส้นเหล่านี้จะพร่ามัวตลอดเวลา :-) พิจารณา Java bytecode คุณไม่สามารถรันได้หากไม่มี JVM แต่ไม่ใช่ซอร์สโค้ด (โดยปกติแล้วมันสามารถเปลี่ยนกลับเป็นซอร์สโค้ดที่ดูสมเหตุสมผลโดย decompiler แต่ ... ) ฉันไม่คิด (จากระยะไกล) ของ Java ในสภาพแวดล้อมแบบดั้งเดิมเป็นภาษาสคริปต์ แต่แล้วฉันก็ไม่ได้ใช้เวลาคิดเกี่ยวกับหมวดหมู่เช่นกัน :-)
TJ Crowder

2
@ CME64: ไม่การใช้งานหลัก (CPython) คอมไพล์ไปยัง bytecode ในทันทีและรัน bytecode ใน VM ในขณะที่มีเครื่องมือ Python-to-C (Cython และ Pyrex) นั่นไม่ใช่วิธีการทำงานของ Python
TJ Crowder

2
ในการป้องกันของ @ Vityata VBScript จะถูกเขียนใน Notepad และตีความว่าเป็นการป้อนข้อความในขณะที่รหัส VBA ถูกคอมไพล์กับ P-Code ในขณะที่คุณพิมพ์ในตัวแก้ไขเช่นซอร์สโค้ดที่คุณเห็นในตัวแก้ไขหลังจากที่คุณแก้ไขบรรทัดของโค้ด ไม่ใช่รหัสที่คุณพิมพ์ แต่การตีความ P-Code พื้นฐานของ VBE : กลไกของ VBA vs VBScript นั้นแตกต่างอย่างสิ้นเชิงและสมบูรณ์ที่สุดและรวมกันในรายการนั้นไม่รู้สึกเลย VBA นั้นใกล้กับ VB6 มากกว่า VBScript เป็นเพียงข้อ จำกัด อย่างชัดเจนที่ป้องกันไม่ให้สร้างปฏิบัติการแบบสแตนด์อโลน
Mathieu Guindon

103

เพื่อทำความเข้าใจความแตกต่างระหว่างภาษาสคริปต์และภาษาโปรแกรมหนึ่งต้องเข้าใจว่าทำไมภาษาสคริปต์เกิด

เริ่มแรกมีภาษาโปรแกรมที่เขียนขึ้นเพื่อสร้างโปรแกรมเช่น excel, word, browser, เกมและอื่น ๆ โปรแกรมเหล่านี้สร้างขึ้นด้วยภาษาเช่น c และ java การทำงานล่วงเวลาโปรแกรมเหล่านี้ต้องการวิธีที่ผู้ใช้สามารถสร้างฟังก์ชั่นใหม่ดังนั้นพวกเขาจึงต้องจัดเตรียมส่วนต่อประสานไปยัง bytecode ของพวกเขาและภาษาสคริปต์จึงเกิดขึ้น

ภาษาสคริปต์มักจะไม่ได้รวบรวมเพื่อให้สามารถทำงานได้ทันทีที่คุณเขียนสิ่งที่มีความหมาย ดังนั้น excel อาจถูกสร้างขึ้นโดยใช้ C ++ แต่มันเปิดเผยภาษาสคริปต์ที่เรียกว่า VBA สำหรับผู้ใช้เพื่อกำหนดฟังก์ชันการทำงาน เบราว์เซอร์ในทำนองเดียวกันอาจถูกสร้างขึ้นด้วย C ++ / Java แต่พวกเขาเปิดเผยภาษาสคริปต์ที่เรียกว่า javascript (ไม่เกี่ยวข้องกับ java ในทางใดทางหนึ่ง) เกมมักสร้างด้วย C ++ แต่มีภาษาที่เรียกว่า Lua สำหรับผู้ใช้เพื่อกำหนดฟังก์ชันการทำงานที่กำหนดเอง

ภาษาสคริปต์มักจะอยู่เบื้องหลังภาษาการเขียนโปรแกรมบางอย่าง ภาษาการเขียนสคริปต์มักจะมีการเข้าถึงความสามารถดั้งเดิมของคอมพิวเตอร์น้อยลงเนื่องจากพวกเขาเรียกใช้ส่วนย่อยของภาษาโปรแกรมต้นฉบับ ตัวอย่างที่นี่คือ Javascript จะไม่สามารถเข้าถึงระบบไฟล์ของคุณ ภาษาสคริปต์มักจะช้ากว่าภาษาโปรแกรม

แม้ว่าภาษาสคริปต์อาจเข้าถึงได้น้อยลงและช้าลง แต่เป็นเครื่องมือที่ทรงพลังมาก ปัจจัยหนึ่งที่ทำให้ภาษาสคริปต์ประสบความสำเร็จคือความง่ายในการอัพเดท คุณจำวันของแอปเพล็ต java บนเว็บได้หรือไม่นี่คือตัวอย่างของการรันภาษาโปรแกรม (java) เทียบกับการใช้ภาษาสคริปต์ (จาวาสคริปต์) ในตอนนั้นคอมพิวเตอร์ไม่ได้ทรงพลังและจาวาสคริปต์ก็ยังไม่โตเต็มที่ดังนั้นจาวาแอพเพล็ตจึงครองฉาก แต่จาวาแอปเพล็ตน่ารำคาญพวกเขาต้องการให้ผู้ใช้จัดเรียงโหลดและคอมไพล์ภาษา กรอไปข้างหน้าอย่างรวดเร็วจนถึงทุกวันนี้แอปเพล็ตจาวาเกือบจะสูญพันธุ์และจาวาสคริปต์ครองฉาก Javascript นั้นเร็วมากที่จะโหลดเนื่องจากส่วนประกอบของเบราว์เซอร์ส่วนใหญ่ติดตั้งไว้แล้ว

สุดท้ายภาษาสคริปต์ก็ถือว่าเป็นภาษาโปรแกรม (แม้ว่าบางคนปฏิเสธที่จะยอมรับสิ่งนี้) - คำที่เราควรใช้ที่นี่คือภาษาสคริปต์กับภาษาที่รวบรวม


4
คุณไม่คิดว่าคุณหมายถึง: "ตีความภาษากับภาษารวบรวม" แทนที่จะเป็น "ภาษาสคริปต์เทียบกับภาษารวบรวม"?
bitsapien

6
"ตัวอย่างนี่คือ Javascript จะไม่สามารถเข้าถึงระบบไฟล์ของคุณได้" Nodejs say hi
Mohammad

@Mohammad NodeJS เป็น runtime ที่อนุญาตให้ coders ใช้ Javascript เป็น "language" สำหรับการเข้ารหัส NodeJS ไม่ใช่ Javascript 100%
JeffNhan

65

ภาษาสคริปต์ทั้งหมดเป็นภาษาการเขียนโปรแกรม

ภาษาไม่ได้จัดอยู่ในประเภทสคริปต์หรือไม่ - ขึ้นอยู่กับสภาพแวดล้อมในการดำเนินการทั้งหมด

หากสภาพแวดล้อมเป็นสภาพแวดล้อมที่ถูกตีความหมายโดยทั่วไปจะเรียกว่าสภาพแวดล้อมการเขียนสคริปต์


18

ความแตกต่างกำลังลดน้อยลงและสำคัญน้อยลง ตามเนื้อผ้าภาษาสคริปต์ขยายโปรแกรมที่มีอยู่ ... ฉันคิดว่านั่นเป็นคำจำกัดความหลักของ "การเขียนสคริปต์" คือมันหมายถึงการเขียนชุดคำสั่งสำหรับเอนทิตีที่มีอยู่เพื่อดำเนินการ อย่างไรก็ตามที่ภาษาสคริปต์เริ่มต้นด้วยไวยากรณ์ที่เป็นกรรมสิทธิ์และภาษาพูดส่วนใหญ่คนที่แพร่หลายในทุกวันนี้มีความสัมพันธ์กับซี

ฉันคิดว่าความแตกต่าง "ตีความ vs รวบรวม" จริงๆแล้วเป็นอาการของการขยายโปรแกรมที่มีอยู่ (กับล่ามในตัว) มากกว่าความแตกต่างที่แท้จริง โปรแกรมเมอร์และฆราวาสคนใดที่เป็นห่วงคือ "โปรแกรมเมอร์ทำอะไรอยู่" ความจริงที่ว่าโปรแกรมหนึ่งถูกตีความและอีกโปรแกรมหนึ่งถูกรวบรวมนั้นมีความหมายน้อยมากในการพิจารณาความแตกต่างในกิจกรรมของผู้สร้าง คุณไม่ได้ตัดสินนักเขียนบทละครว่าบทละครของเขาอ่านออกเสียงมากกว่าปกติหรือแสดงบนเวทีใช่มั้ย


12

ภาษาโปรแกรม: ถูกคอมไพล์ไปยังรหัสเครื่องและเรียกใช้บนฮาร์ดแวร์ของระบบปฏิบัติการพื้นฐาน

ภาษาสคริปต์: เป็นชุดย่อยของภาษาโปรแกรม มันถูกตีความโดยทั่วไป โดยทั่วไปแล้วมันคือ "สคริปต์" สิ่งอื่น ๆ เป้าหมายหลักไม่ได้สร้างแอพของคุณเองเป็นหลัก แต่การได้รับแอพที่มีอยู่เพื่อดำเนินการตามที่คุณต้องการเช่น JavaScript สำหรับเบราว์เซอร์, TCL และอื่น ๆ

*** แต่มีสถานการณ์ที่ภาษาการเขียนโปรแกรมถูกแปลงเป็นล่ามและข้อรองเช่นการใช้งานมีล่าม C ที่คุณสามารถ 'C' สคริปต์ โดยทั่วไปจะเขียนสคริปต์เพื่อควบคุมพฤติกรรมการใช้งานที่เป็นภาษาการเขียนโปรแกรมใช้ในการสร้างแอปพลิเคชัน แต่ระวังว่าการแบ่งเขตจะทำให้เปรอะเปื้อนแบบวันต่อวันเป็นตัวอย่างของ Python มันขึ้นอยู่กับวิธีการใช้ภาษา


10

ภาษาสคริปต์เป็นส่วนหนึ่งของภาษาโปรแกรม

  1. ภาษาสคริปต์ไม่ได้ถูกคอมไพล์ไปยังรหัสเครื่องโดยผู้ใช้ (python, perl, shell, ฯลฯ ) ค่อนข้างโปรแกรมอื่น (เรียกว่าล่ามเรียกใช้โปรแกรมและจำลองพฤติกรรมของมัน)
  2. ภาษาการเขียนโปรแกรมบางภาษาที่ไม่ใช่การเขียนสคริปต์ (ภาษา C, C ++, Haskell และภาษา 'ที่คอมไพล์' อื่น ๆ ) จะถูกคอมไพล์ไปยังรหัสเครื่องและจะเรียกใช้ในภายหลัง

5

ฉันคิดว่าสิ่งที่คุณระบุว่า "ความแตกต่าง" เป็นผลมาจากความแตกต่างที่แท้จริง

ความแตกต่างที่แท้จริงคือเป้าหมายของรหัสที่เขียน ใครจะใช้รหัสนี้

ภาษาสคริปต์ใช้เพื่อเขียนรหัสที่จะกำหนดเป้าหมายระบบซอฟต์แวร์ มันจะทำการดำเนินการอัตโนมัติในระบบซอฟต์แวร์นั้น สคริปต์จะเป็นลำดับของคำแนะนำสำหรับระบบซอฟต์แวร์เป้าหมาย

ภาษาการเขียนโปรแกรมกำหนดเป้าหมายไปที่ระบบคอมพิวเตอร์ซึ่งอาจเป็นเครื่องจริงหรือเสมือน คำแนะนำถูกดำเนินการโดยเครื่อง

แน่นอนว่าเครื่องจริงเข้าใจเฉพาะรหัสไบนารี่ดังนั้นคุณต้องรวบรวมรหัสภาษาการเขียนโปรแกรม แต่นี่เป็นผลมาจากการกำหนดเป้าหมายเครื่องแทนโปรแกรม

ในอีกทางหนึ่งระบบซอฟต์แวร์เป้าหมายของสคริปต์อาจรวบรวมรหัสหรือตีความมัน ขึ้นอยู่กับระบบซอฟต์แวร์

ถ้าเราบอกว่าความแตกต่างที่แท้จริงคือการคอมไพล์หรือไม่นั้นเรามีปัญหาเพราะเมื่อ Javascript ที่ทำงานใน V8 ถูกคอมไพล์และเมื่อมันทำงานใน Rhino จะไม่ถูกรวบรวม

มันจะสับสนมากขึ้นเนื่องจากภาษาสคริปต์มีการพัฒนาให้มีประสิทธิภาพมากขึ้น ดังนั้นพวกเขาจึงไม่ จำกัด การสร้างสคริปต์ขนาดเล็กเพื่อดำเนินการอัตโนมัติบนระบบซอฟต์แวร์อื่นคุณสามารถสร้างแอปพลิเคชันที่หลากหลายได้ด้วย

รหัส Python กำหนดเป้าหมายเป็นล่ามเพื่อให้เราสามารถพูดได้ว่าเป็นการดำเนินการ "สคริปต์" ในล่าม แต่เมื่อคุณเขียนโค้ด Python คุณจะไม่เห็นว่ามันเป็นสคริปต์ล่ามคุณจะเห็นว่ามันเป็นการสร้างแอปพลิเคชัน ล่ามอยู่ที่นั่นเพื่อให้โค้ดในระดับที่สูงขึ้นในหมู่สิ่งอื่น ๆ ดังนั้นสำหรับฉัน Python เป็นภาษาโปรแกรมมากกว่าภาษาสคริปต์


5

ย้อนกลับไปเมื่อโลกยังเยาว์วัยและในโลกพีซีที่คุณเลือกจาก. exe หรือ. bat การวาดเส้นเรียบง่าย ระบบ Unix มักจะมีเชลล์สคริปต์ (/ bin / sh, / bin / csh, / bin / ksh, ฯลฯ ) และภาษาที่คอมไพล์ (C / C ++ / Fortran)

เพื่อแยกความแตกต่างของบทบาทและความรับผิดชอบภาษาที่รวบรวม (มักจะเรียกว่าภาษาที่ 3) ถูกมองว่า 'ภาษาโปรแกรม' และภาษา 'สคริปต์' ถูกมองว่าเป็นภาษาที่เรียกล่าม (มักเรียกว่าภาษารุ่นที่ 4) ภาษาสคริปต์มักใช้เป็น 'กาว' เพื่อเชื่อมต่อระหว่างหลายคำสั่ง / โปรแกรมที่คอมไพล์เพื่อให้ผู้ใช้ไม่ต้องกังวลเกี่ยวกับชุดของขั้นตอนเพื่อทำงานของพวกเขา - พวกเขาพัฒนาไฟล์เดียวที่อธิบายขั้นตอนใด พวกเขาต้องการบรรลุผลและนี่กลายเป็น 'สคริปต์' สำหรับทุกคนที่ติดตาม

บุคคล / กลุ่มต่าง ๆ เขียนล่ามใหม่เพื่อแก้ปัญหาโดเมนเฉพาะ awk เป็นหนึ่งในที่รู้จักกันดีและส่วนใหญ่จะใช้สำหรับการจับคู่รูปแบบและใช้ชุดของการแปลงข้อมูลในอินพุต มันทำงานได้ดี แต่มีโดเมนปัญหาที่ จำกัด การขยายตัวของโดเมนนั้นทั้งหมด แต่เป็นไปไม่ได้เพราะรหัสแหล่งที่มาไม่พร้อมใช้งาน เครื่องมือสคริปต์ Perl (Larry Wall, ผู้สร้างหลักการ / สถาปนิก) ในระดับต่อไป - และพัฒนาล่ามที่ไม่เพียง แต่อนุญาตให้ผู้ใช้เรียกใช้คำสั่งระบบจัดการข้อมูลอินพุตและเอาต์พุตตัวแปรตัวแปรที่สนับสนุน แต่ยังเข้าถึง API ระดับระบบ Unix เป็นฟังก์ชั่นจากภายในสคริปต์ของตัวเอง มันอาจเป็นหนึ่งในภาษาสคริปต์ระดับสูงที่ใช้กันอย่างแพร่หลายครั้งแรก

คำถามของคุณเกี่ยวกับ Python โดยเฉพาะ เนื่องจากล่ามหลามทำงานกับไฟล์ข้อความที่มีรหัสหลามและรหัสหลามสามารถทำงานได้ทุกที่ที่มีล่ามหลามฉันจะบอกว่ามันเป็นภาษาสคริปต์ (ในหลอดเลือดดำเช่นเดียวกับ Perl) คุณไม่จำเป็นต้องคอมไพล์ไฟล์คำสั่ง python ของผู้ใช้อีกครั้งสำหรับแต่ละ OS / CPU Architecture ที่แตกต่างกัน (ตามที่คุณต้องการด้วย C / C ++ / Fortran) ทำให้พกพาสะดวกและใช้งานง่ายขึ้น

เครดิตสำหรับคำตอบนี้ไปที่ Jerrold (Jerry) Heyman กระทู้เดิม: https://www.researchgate.net/post/Is_Python_a_Programming_language_or_Scripting_Language


4

ฉันไม่แน่ใจว่าภาษาที่ใช้ล่ามเป็นภาษาสคริปต์และภาษาที่ได้รับการรวบรวมนั้นเป็นภาษาโปรแกรม เราสามารถพัฒนาล่ามหรือผู้แปลสำหรับภาษาใด ๆ สภาพแวดล้อมที่ตีความเหมาะสมกับการเขียนสคริปต์เว็บดีขึ้นและทำให้ง่ายขึ้นนั่นคือสาเหตุที่เรามี

ฉันรู้สึกว่าไม่มีความแตกต่างระหว่างภาษาสคริปต์และภาษาโปรแกรม มันคือทั้งหมดที่เกี่ยวกับการทำให้งานเสร็จ เมื่อพูดถึงงานที่เกี่ยวข้องกับเว็บเราเรียกพวกเขาว่าเว็บสคริปต์เพื่อพิจารณางานเล็ก ๆ และวิธีที่เราอาจเรียกงานที่เกี่ยวข้องกับระบบในฐานะที่เป็นระบบหรือสคริปต์ระดับ OS และภาษาการเขียนโปรแกรมที่เราใช้เพื่อทำงานเหล่านั้นเป็นภาษาสคริปต์ระบบ

นอกจากนี้ยังไม่ใช่เพื่อที่จะไม่สามารถเขียนรหัสระดับระบบใน Python และเว็บสคริปต์ในภาษา C (แน่นอนหนึ่งสามารถทำได้ถ้าเราสามารถสร้างแพลตฟอร์มและสภาพแวดล้อมที่ต้องการ) แต่สิ่งที่ต้องทำมีเพียงความพยายามมากเกินไปซึ่งอาจส่งผลต่อข้อ จำกัด ด้านเวลาสำหรับการพัฒนาอย่างรวดเร็วและการลดความล่าช้าเล็กน้อยจะไม่ส่งผลดีต่อเราในสคริปต์เว็บมากนัก แต่ในทางกลับกันก็ไม่เป็นความจริงหากเราปฏิบัติงานในระดับระบบใน Python

บรรทัดล่าง: การเลือกภาษาขึ้นอยู่กับลักษณะของงานที่ต้องดำเนินการและแบ่งแยกภาษาเป็นภาษาสคริปต์เป็นตำนาน


4

ภาษาสคริปต์

ภาษาสคริปต์ถูกตีความภายในโปรแกรมอื่น JavaScript ถูกฝังอยู่ภายในเบราว์เซอร์และตีความโดยเบราว์เซอร์นั้น

ตัวอย่างภาษาสคริปต์

  1. JavaScript
  2. Perl
  3. หลาม

ข้อดีของภาษาสคริปต์:

  1. ง่าย - ภาษาสคริปต์ง่ายต่อการเขียนมากกว่าภาษาโปรแกรม

  2. ลดจำนวนบรรทัดของรหัส (LOC)

ภาษาโปรแกรม

ภาษาการเขียนโปรแกรมเช่น Java รวบรวมและไม่ได้ตีความโดยแอปพลิเคชันอื่นในลักษณะเดียวกัน

ตัวอย่างภาษาโปรแกรม

  1. C ++ และ
  2. ชวา

รายละเอียดเพิ่มเติม


ภาษาสคริปต์ที่มีการเขียนโปรแกรมภาษา นอกจากนี้ Java ยังถูกตีความโดยแอปพลิเคชันอื่นที่เรียกว่า JVM
bfontaine

4

ในภาษาสคริปต์เช่น (JavaScript และเวอร์ชัน PHP เก่า) เราใช้ฟังก์ชั่นพื้นฐานที่มีอยู่และวิธีการในการปฏิบัติงานของเรา ให้JavaScriptเราเป็นตัวอย่างในการที่เราสามารถใช้งานได้ajaxหรือweb-socketsถ้ามันได้รับการสนับสนุนโดยเบราว์เซอร์หรือวิธีการที่มีอยู่หรือในเบราว์เซอร์ แต่ในภาษาเช่น C หรือ C ++, Java เราสามารถเขียนคุณลักษณะนั้นตั้งแต่เริ่มต้นแม้ว่าไลบรารีสำหรับคุณลักษณะนั้นจะไม่พร้อมใช้งาน แต่เราไม่สามารถทำได้ใน JavaScript

คุณสามารถรองรับเว็บซ็อกเก็ตใน Internet Explorer 8 หรือก่อนหน้าด้วยความช่วยเหลือของ JavaScript แต่คุณสามารถเขียนปลั๊กอินใน C หรือ C ++ หรือ Java ซึ่งอาจเพิ่มคุณสมบัติของ web-socket ไปยัง Internet Explorer 8

โดยทั่วไปในภาษาสคริปต์เราเขียนโค้ดในลำดับที่ดำเนินการวิธีการที่มีอยู่ในลำดับเพื่อให้งานของเราเสร็จสมบูรณ์ การป้อนตัวเลขและสูตรในเครื่องคิดเลขดิจิทัลเพื่อดำเนินการเป็นตัวอย่างของภาษาสคริปต์เราควรทราบว่าคอมไพเลอร์ / เวลาทำงานของสภาพแวดล้อมของทุกภาษาสคริปต์จะเขียนด้วยภาษาโปรแกรมเสมอซึ่งเราสามารถเพิ่มคุณสมบัติเพิ่มเติมได้ และวิธีการและสามารถเขียนไลบรารีใหม่ได้

PHP นี่คือภาษาที่ค่อนข้างจะใช้เขียนโปรแกรมและเขียนสคริปต์ได้ เราสามารถเพิ่มวิธีการใหม่โดยการเพิ่มส่วนขยายที่รวบรวมในภาษาระดับสูงอื่น เราไม่สามารถเพิ่มคุณสมบัติระดับสูงของเครือข่ายหรือสร้างห้องสมุดประมวลผลภาพโดยตรงใน PHP

ป.ล.ฉันเสียใจจริงๆที่ต้องหมุนคำตอบของฉันรอบ ๆ JavaScript JavaScript เท่านั้น แต่ฉันใช้สองสิ่งนี้เพราะฉันมีประสบการณ์มากมายในทั้งสองนี้


3

นอกเหนือจากความแตกต่างที่ภาษาสคริปต์คือการตีความและการเขียนโปรแกรมภาษารวบรวมมีความแตกต่างอื่นดังต่อไปนี้ซึ่งฉันคิดว่าได้พลาด ..

ภาษาสคริปต์เป็นภาษาการเขียนโปรแกรมที่ใช้เพื่อจัดการปรับแต่งและทำให้ระบบอัตโนมัติของระบบที่มีอยู่เป็นอัตโนมัติ ในระบบดังกล่าวฟังก์ชั่นที่มีประโยชน์มีอยู่แล้วผ่านส่วนต่อประสานกับผู้ใช้และภาษาสคริปต์เป็นกลไกสำหรับการเปิดเผยฟังก์ชั่นนั้นไปยังโปรแกรมควบคุม

ในขณะที่ภาษาการเขียนโปรแกรมโดยทั่วไปจะใช้ในการรหัสระบบจากรอยขีดข่วน

src ECMA


2

ถ้าเราเห็นภาษาการเขียนโปรแกรมในเชิงตรรกะและภาษาสคริปต์ดังนั้นนี่คือ 99.09% เหมือนกัน เพราะเราใช้แนวคิดเดียวกันเช่นวนรอบเงื่อนไขการควบคุมตัวแปรและทั้งหมดดังนั้นเราจึงสามารถบอกว่าใช่ทั้งคู่เหมือนกัน แต่มีเพียงสิ่งเดียวเท่านั้นที่แตกต่างกันระหว่างพวกเขาที่อยู่ใน C / C ++ และภาษาการเขียนโปรแกรมอื่น ๆ แต่ใน PHP, JavaScript และภาษาสคริปต์อื่น ๆ เราไม่จำเป็นต้องรวบรวมเราเรียกใช้งานโดยตรงในเบราว์เซอร์

ขอบคุณ Nitish K. Jha


2

ภาษาสคริปต์เป็นภาษาโปรแกรมที่ผู้คนคิดว่าเป็นภาษาสคริปต์ เป็นหมวดหมู่ประดิษฐ์ที่ไม่มีขอบเขตชัดเจนและทุกข้อเสนอที่เสนอมีข้อยกเว้น

กฎดั้งเดิมที่ใช้ในการกล่าวว่าภาษาเป็นภาษาสคริปต์ที่มีลักษณะเฉพาะไม่ได้กำหนด หากภาษาเป็นไปตามกฎหลายข้อมีโอกาสที่ดีที่จะถือว่าเป็นภาษาสคริปต์ ถ้าไม่เป็นเช่นนั้นก็เป็นโอกาสที่ดี กฎมักจะรวมถึง:

  • มันมีไว้สำหรับ "สคริปต์" ขนาดเล็กไม่ใช่โปรแกรมขนาดใหญ่
  • มันฝังอยู่ในแอปพลิเคชันอื่นซึ่งใช้สำหรับการแก้ไขแอปพลิเคชันเล็กน้อย
  • มันตีความมากกว่ารวบรวม
  • มันมีไว้สำหรับโปรแกรมเมอร์สามเณรไม่ใช่มืออาชีพ
  • ชื่อของมันจะลงท้ายด้วย "สคริปต์"

ฉันจะเพิ่ม:

  • ภาษาสคริปต์เป็นภาษาการเขียนโปรแกรมที่ตรวจพบข้อผิดพลาดเกือบทั้งหมดที่รันไทม์

นั่นคือมันอาจเป็นภาษาที่ตีความ

หากภาษาการเขียนโปรแกรมมีพฤติกรรม "เวลาคอมไพล์" ที่สำคัญซึ่งวิเคราะห์โค้ดและรายงานข้อผิดพลาดโดยไม่ต้องรันโปรแกรมเช่นข้อผิดพลาดในการพิมพ์จาก C, Java หรือ C # ก็น่าจะไม่ถือว่าเป็นภาษาสคริปต์

โดยทั่วไปภาษาสคริปต์จำนวนมากได้รับการตีความโดยตรงจากแหล่งที่มา แต่ที่นิยมมากขึ้นของพวกเขามีการใช้งานนักแสดง.pycที่คอมไพล์รหัสก่อนเช่นไฟล์Python หรือเพิ่มประสิทธิภาพเครื่องยนต์ JavaScript ที่รวบรวมเป็นรหัสพื้นเมืองก่อนที่จะทำงาน

หากล่ามสามารถใช้ภาษาได้ซึ่งจะดูที่ซอร์สโค้ดขณะที่กำลังรันอยู่เท่านั้นแปลว่าเป็นภาษาสคริปต์ ไม่ว่าจะใช้งานจริงหรือไม่ก็ตาม แต่ถ้าเป็นเช่นนั้นมันก็ไม่จำเป็นต้องมีการตรวจสอบข้อผิดพลาดในการรวบรวมรหัส

หากภาษานั้นมีความหมายแบบสแตติกที่มีประโยชน์ซึ่งช่วยตรวจจับข้อผิดพลาด (นอกเหนือจากข้อผิดพลาดทางไวยากรณ์) โดยไม่จำเป็นต้องเรียกใช้โปรแกรมก็อาจไม่ใช่ภาษาสคริปต์

มีข้อยกเว้นอยู่เสมอโดยทั่วไปจะยึดตามประเพณีรอบ ​​ๆ ภาษามากกว่ากฎที่แท้จริง พื้นฐานมักจะไม่ถือว่าเป็น "ภาษาสคริปต์" แม้ว่ามันจะเป็นไปตามเกณฑ์ที่ทุกคนเคยใช้ นั่นเป็นสาเหตุที่สคริปต์ Visual Basic ต้องเพิ่ม "สคริปต์" ลงในชื่อเพื่อแยกความแตกต่างจาก Visual Basic ซึ่งเป็นภาษาการเขียนโปรแกรม "ของจริง" สำหรับโปรแกรมขนาดใหญ่

พื้นฐานยังเป็นภาษาโปรแกรมเก่าเช่น COBOL และ Fortran จากก่อนที่ผู้คนคาดว่าการวิเคราะห์แบบคงที่จากภาษาและโดยทั่วไปก่อน "ภาษาสคริปต์" ก็เป็นสิ่งที่แม้แต่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.