Type Systems of Scripting Languages
نویسندگان
چکیده
Type systems play an important role in the design of programming languages, they prevent programs from having non-correct behavior. Typically, type systems are expressed in two ways, type-checking and type inference. The type information presented on local variables and method arguments makes the difference in choosing one technique rather than the other. Type checking is a derivation type inference. In literature, the time when type-checking occurs, compile or run time, classifies them in static and dynamic. We will take a look on the type systems of some scripting languages. In this paper, we will focus on JavaScript, Python and Ruby. Most scripting languages use dynamic typing. However, we will see some recent work on providing them with static type-checking, soft-typing and type inference. We will discuss about their dynamic and lightweight properties and also about the trade off between the advantages of using static type-checking and the preservation of their properties. We will talk about the object-oriented features presented in scripting languages looking at Smalltalk [Ing78] as the first object-oriented programming language. We will look also at recent works on pluggable type systems [Bra04, ANM06] and on PyPy[RP06], a translation tool from Python to C.
منابع مشابه
Fluid Object Types
Objects in popular scripting languages are lightweight and dynamic. Programmers use these objects in ways that confound existing type systems. We present a core calculus, λ S , that distills the essence of objects in a number of scripting languages. Using λ S , we examine characteristic object-oriented scripting idioms that are untypable by conventional type systems. We develop fluid object typ...
متن کاملResearch Overview
Modern systems built for the desktop, the web, and the cloud are increasingly being developed in several languages, share code and data with multiple parties of varying levels of authority and trust, and run in environments split across client and server. My goal is to design programming language tools — including type systems, program analysis, dynamic instrumentation, and integrated developme...
متن کاملThe Role of Algorithmic Applications in the Development of Architectural Forms (Case Study:Nine High-Rise Buildings)
The process of developing architectural forms has greatly been changed by advances in digital technology, especially in design tools and applications. In recent years, the advent of graphical scripting languages in the design process has profoundly affected 3D modeling. Scripting languages help develop algorithms and geometrical grammar of shapes based on their constituent parameters. This stud...
متن کاملFilters as a Language Support for Design Patterns in Object-oriented Scripting Languages 1.1 Scripting Languages 1.2 Scripting and Object Orientation
Scripting languages are designed for glueing software components together. Such languages provide features like dynamic extensibility and dynamic typing with automatic conversion that make them well suited for rapid application development. Although these features entail runtime penalties, modern CPUs are fast enough to execute even large applications in scripting languages eeciently. Large app...
متن کاملReconciling method overloading and dynamically typed scripting languages
The Java Virtual Machine (JVM) has been adopted as the executing platform by a large number of dynamically typed programming languages. For example, Scheme, Ruby, Javascript, Lisp, and Basic have been successfully implemented on the JVM and each is supported by a large community. Interoperability with Java is one important requirement shared by all these languages. We claim that the lack of typ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007