1 / 17

Scripting Languages Intro

Scripting Languages Intro. Jan Stelovsky, ICS 215. Wikipedia. A scripting language, script language or extension language is a programming language that allows control of one or more software applications .

drea
Download Presentation

Scripting Languages Intro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Scripting Languages Intro Jan Stelovsky, ICS 215

  2. Wikipedia • A scripting language, script language or extension language is a programming language that allows control of one or more software applications. • "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the end-user. • Scripts are often interpreted from source code or bytecode, whereas the applications they control are traditionally compiled to native machine code. • Scripting languages are nearly always embedded in the applications they control.

  3. Comment • from stackoverflow: • You will notice the use of "usually", "often", "traditionally" and "nearly always" - these all tell you that there is no set of distinct attributes that make a specific language a "scripting language".

  4. Scripting vs. “Programming” Languages • Scripting languages are Programming languages (PL) • interpreted vs. compiled • slow vs. fast • but: Java – a PL is hybrid • compiled to bytecode • bytecode is common to all hardware platforms • bytecode is then interpreted • JIT even compiles to “native” code dynamically • but: LISP – a PL - is interpreted • but: scripting languages became hybrid/compiled • all JavaScript scripts are nowadays compiled

  5. Hybrid Processing program script bytecode nativeWindows Intel nativeMac Intel/Motorola nativeLinux Intel

  6. Scripting vs. “Programming” Languages cont. • scripting languages often operate other programs, or the operating system (OS), e.g. Windows, or other applications, e.g. the browser • batch “shells” on Unix • Applescript operating other applications • but often programs in PL can execute or at least create scripts for scripting languages • but does JavaScript “operate another program” • the browser?

  7. Other Aspects • verbose vs. terse • PL are typically terse, vs. Applescript • but • but most languages adopted C syntax: C, C++, Java, JavaScript, even Ruby

  8. Other Uses of Scripting Languages • CoffeeScript is a better JavaScript • classes: inheritance • consistency • alleviates JavaScript quirks • == and === • is variable defined? • what’s variable’s type • needs to be translated to JavaScript

  9. PL Charts • How did PLs develop • typical chart • http://upload.wikimedia.org/wikipedia/commons/a/a7/TaxonomyofProgrammingLanguages.png • mostly C as “grandfather” • Java = C++-- • consider trends (innovation, density) • book publishers, e.g. O’Reilly • http://oreilly.com/news/graphics/prog_lang_poster.pdf

  10. Traditional PL Chart (top)

  11. Traditional PL Chart (bottom)

  12. O’Reilly PLs & Books

  13. O’Reilly PLs

  14. Most Recent O’Reilly PL Books • 8 out of 13 newer PLs (=60%) • Note: JavaScript ~= ECMA Script ~= ActionScript

  15. 215, ICS and PLs Popularity ICS 215 • 5 out of 11 most popular PLs (mpPLs) • 24% of mpPLs ICS • 7 out of 11 mpPLs • 55% of mpPLs

  16. Conclusion • The differences between Scripting Languages and Programming Languages are getting more and more blurred • languages are becoming compiled or at least hybrid • languages often operate OS or other applications • e.g. access to file system • our distinction is mainly historical • Java (Pascal) and C++ are taught in intro courses • we need to expose students to other languages • ICS exposes you to most of the trending PLs • already in undergraduate curricullum • in particular in ICS 215 (and ICS 315)

  17. Our Definition • now • JavaScript • Ruby • PHP • Python • Perl • in future • other new programming languages as they become important

More Related