Basis for comparisonprogramming languages By :Abdelrahman Ibrahim Elhais 2012/2013
Object orientation:There are several qualities for Object OrientedLanguages: Encapsulation Inheritance Polymorphism/dynamic binding. All operation performed by sending messages to object. All user-defined types are object. Java C# C++ Paython Visual basic Hybrid Hybrid Hybrid/multi Hybrid Particular -paradigm supportStatic vs. dynamic typing A dynamic type system doesnt require variables to be declared as a specific type. Statically type languages requires that all variables are declared with specific type. Java C# C++ Paython Visual basic Static Static Static Dynamic Static
Feature renaming:Feature renaming is the ability for a class or object to renameone of its features (a term used to collectively refer toattributes and methods) that it inherited from a super class. Java C# C++ Paython Visual basic yes yes– yes No NoMethod overloading:Method overloading (also referred to as parametricpolymorphism) is the ability for a class, module, or other scopeto have two or more methods with the same name.Calls to these methods are disambiguated by the numberand/or type of arguments passed to the method at the call site. Java C# C++ Paython Visual basic yes yes yes No No
Operator overloading:ability for a programmer to define an operator (such as +, or *)for user-defined types. Java C# C++ Paython Visual basic No Yes yes Yes NoHigher Order Functions andLexical ClosuresHigher Order Functions:functions that can be treated as if they were data objects. they can be bound to variables (including the ability to be stored in collections). can be passed to other functions as parameters. can be returned as the result of other functions.Lexical Closure: bundling up the lexical (static) scope surrounding the functionwith the function itself, so that the function carries itssurrounding environment around with it wherever it may beused. Java C# C++ Paython Visual basic
No Yes yes Yes NoGarbage Collection:mechanism allowing a language implementation tofree memory of unused objects on behalf of theprogrammer. Reference Counting Mark and Sweep GenerationalD Java C# C++ Paython Visual basic Mark Mark and None Reference Reference and sweep sweepUniform Access:All services offered by a mod-ule should be availablethrough a notation, which does not betray whether theyare implemented through storage or throughcomputation. Java C# C++ Paython Visual basic No No No No Yes
Class Variables/Methods:Class variables and methods are owned by a class, and not anyparticular instance of a classThis means that for however many instances of a classexist at any given point in time, only one copy of each classvariable/method exists and is shared by every instance of theclass. Java C# C++ Paython Visual basic yes Yes yes No YesReflection:ability for a program to determine various pieces ofinformation about an object at run-time. Most object-oriented languages support some form of reection.thisincludes the ability to determine: the type of the object, its inheritance structure, and the methods it contains, including the number and types of parameters and return types . It might also include the ability for determining the names and types
Java C# C++ Paython Visual basic yes Yes No Yes NoAccess Control:ability for a modules implementation to remain hiddenbehind its public interface. Java C# C++ Paython Visual basic Public –private Public – Public –private Name Public-private -protected private -protected mangling -protectedDesign by Contract:Design by Contract (DBC) is the ability to incorporateimportant aspects of a specification into the software thatis implementing it. The most important features of DBCare: Pre-conditions, which are conditions that must be true before a method is invoked Post-conditions, which are conditions guaranteed to be true after the invocation of a method. Invariants, which are conditions guaranteed to be true at any stable point during the lifetime of an object.. .
Java C# C++ Paython Visual basic No No No No NoMultithreading:ability for a single process to process two or more tasksconcurrently. Java C# C++ Paython Visual basic Yes Yes libraries Yes NoRegular Expressions: pattern matching constructs capable of recognizing the class oflanguages known as regular languages.D Java C# C++ Paython Visual basic Standard Standard No Standard No libraries libraries librariesPointer Arithmetic :ability for a language to directly manipulate memory addressesand their contents.
D Java C# C++ Paython Visual basic No Yes Yes No NoLanguage Integration:It is important for a high level language (particularly interpretedlanguages) to be able to integrate seamlessly with otherlanguages. Java C# C++ Paython Visual basic With All .net With With With c c,c++ languages c,assembler c,c++,javaBuilt-In Security:language implementations ability to determine whether or not apiece of code comes from a trusted source (such as the usershard disk), limiting the permissions of the code if it does not. Java C# C++ Paython Visual basic Yes Yes No No No