The Survey of Programming Language Classification

本博客地址:www.xnerv.wang

ABSTRACT

 

1.INTRODUCTION

    With the increasing of programming language varieties, more and more programmers have to study and make use of several programming languages in the meantime. Different languages's nature is the same. According to several criteria, languages can be devided into several categories respectively. By studying the criteria and methods of classification, programmers could understand the nature of programming language, and master quickly new languages. But some definitions about language classification on the net are ambiguous and even incorrect at present. To distinguish and definitize these related definitions, this paper surveys Wikis and some technical blogs, and determines clearer definitions in terms of dynamism of language, dynamism of type system,  intensity of type system and compilation of language in sequence. In addition, this paper would classify several frequently-used langueges based on the definitions mentioned above. What calls for special attention is that, this paper doesn't seek precise and theoretic definitions or classification. It just provides relatively plain explanations for development practice.
 

2.CLASSIFICATION OF PROGRAMMING LANGUAGES

2.1 Dynamism of Language

    Dynamic Programming Language(DPL) is sometimes also called Dynamic Language unofficially, a class of high-level programming language that execute many common behaviors at runtime that Static Programming Languages might perform during compilation, including extension of the program, by adding new code, by extending objects and definitions, or by modifying the type system, all during program execution. Most dynamic languages are also dynamically typed, but not all are[1].
    Static Programming Language(SPL) is s ometimes also called Static Language unofficially, relative to Dynamic Language.

2.2 Dynamism of Type System

    Dynamically Typed Language, sometimes called Dynamic Type-Checking Language(DCL) is a language in which types are discovered at execution time, the opposite of Statically Typed Language[2].
    Statically Typed Language, sometimes called Static Type-Checking Language(SCL), is a language in which types are fixed at compile time. Most Statically Typed Languages enforce this by requiring you to declare all variables with their datatypes before using them[2].

2.3 Intensity of Type System

    Strongly Typed Language(STL) is a language in which types are always enforced. If you have an integer, you can't treat it like a string without explicitly converting it[3].
    Weakly Typed Language(WTL) is a  language in which types may be ignored, the opposite of Strongly Typed Language. WTL doesn't mean no variable types, but one variable's type can be seemed alterable in its life cycle, just with no strict type constraints, and without any explicit conversion. Generally speaking, there is no need to distinguish dynamism of type system for WTL.

2.4 Compilation of Language

     A compiled language is a language whose implementations are typically compilers , and not interpreters[4].
     A interpreted language is a language that avoids explicit program compilation. The interpreter executes the program source code directly, as a processor or scripting does[5].
    A combination of both solutions is also increasingly common: a compiler can translate the source code into some intermediate form (often called bytecode), which is then passed to an interpreter which executes it[4].
     A scripting language or script language isn't a traditional programming language, similar to a "dummy programming language". It supports the writing of scripts, programs written for a special runtime environment that can interpret and automate the execution of tasks which could alternatively be executed one-by-one by a human operator. So maybe we could call it a new interpreted language[6].
 

3.DISCUSSIONG OF SEVERAL LANGUAGES

Table 1. Classification of several frequently-used langueges
 STLWTL
SCLC/C++(SPL), C#(DPL), Java(DPL)PHP(DPL), Javascript(DPL)
DCLObjective-C(SPL)

3.1 C/C++

    C/C++ are SPLs, SCLs. Generally speaking, we call C/C++ STLs, as it have a declared type, and support the use of explicit casts of arithmetic values to other arithmetic types. But C/C++ are sometimes said to be more weakly typed than C#, Java and so on[7], probably based on the fact that C/C++ supports more kinds of implicit conversions, and allows pointer values to be explicitly cast while Java do not[3].

3.2 C#

     C# is a DPL as a result of its reflection mechanism, and generally speaking, a SCL. But C# added a keyword called "var" from version 4.0, so it also looks like a SCL now. C# is also belonged to STL though it allows disabling dynamic type checking by explicitly putting code segments in an "ansafe context".

3.3 Objective-C

     Objective-C is extension of C, so wo just discuss the extended portion. Objective-C is a SPL, and a DCL due to "id" keyword. Objective-Cis also a STL.

3.4 Java

    Java is a DPL as a result of its reflection mechanism like C#, a SCL and a STL.

3.5 Python

     Python is a DPL, a DCL and a STL.

3.6 PHP

     PHP is a DPL. Although PHP is usually called a WTL, but we could get variable's datatype by gettype() function. Maybe it can be seemed as implicit type conversion like C/C++.

3.7 Javascript

    Javascript is DPL, a WTL.
 

4.CONCLUSION

    This paper surveys determines clearer definitions in terms of dynamism of language, dynamism of type system,  intensity of type system, compilation of language and type safety in sequence, and classify several frequently-used langueges based on these definitions. As we see, a practical programming language tending to be compound of several classifications, or classification boundary being too blurred to make a classification, so frequently causes suspicion and dispute.
 

5.REFERENCES


(This paper comes from http://blog.csdn.net/nerv3x3/article/details/9199259, Author: nerv3x3)
标题JSPM服装销售系统设计与实现研究AI更换标题第1章引言阐述JSPM服装销售系统的研究背景、意义、国内外系统发展现状、论文方法及创新点。1.1研究背景与意义分析服装销售行业现状及JSPM系统开发的重要性。1.2国内外研究现状探讨国内外服装销售系统的发展水平和主要特点。1.3研究方法及创新点介绍系统开发采用的方法和论文的创新之处。第2章相关理论总结服装销售系统开发的相关理论和技术基础。2.1软件开发理论介绍软件开发的基本流程和常用方法。2.2数据库技术基础概述数据库设计原则和数据库管理系统的作用。2.3编程语言与框架阐述系统开发所用编程语言和框架的特点及优势。第3章JSPM服装销售系统设计详细介绍JSPM服装销售系统的整体架构和功能模块设计。3.1系统架构设计说明系统的层次结构和各模块间的交互关系。3.2功能模块设计介绍商品管理、销售管理、库存管理等模块的功能。3.3数据库设计阐述数据库表结构、字段设计和数据关系。第4章JSPM服装销售系统实现JSPM服装销售系统的具体实现过程和技术细节。4.1开发环境搭建介绍系统开发所需的硬件和软件环境配置。4.2编码实现说明各功能模块的编码实现过程和关键代码。4.3系统测试与优化阐述系统测试的方法和步骤,以及优化策略。第5章研究结果与分析展示JSPM服装销售系统的运行效果并进行性能分析。5.1系统运行效果展示通过截图或视频展示系统的主要功能和界面。5.2性能分析与对比分析系统的响应时间、处理速度等性能指标,并与传统系统进行对比。第6章结论与展望总结JSPM服装销售系统的研究成果,并提出未来改进方向。6.1研究结论概括系统开发的主要成果和优势。6.2展望指出系统存在的不足和未来改进的研究方向。
The classification of agricultural products is a system used to group different types of crops and livestock based on their characteristics, usage, and market value. This system is important for farmers, traders, and governments to understand the agricultural sector and to make informed decisions about production, distribution, and trade. Here are some key points about the classification of agricultural products: 1. The classification of agricultural products varies by country and region, depending on local conditions, traditions, and regulations. 2. In general, agricultural products can be classified into two main categories: crops and livestock. 3. Crops can be further classified into two groups: food crops and non-food crops. Food crops are those that are grown for human consumption, such as grains, vegetables, fruits, and nuts. Non-food crops are those that are grown for other purposes, such as fiber, fuel, or industrial uses. 4. Livestock can be classified into four groups: meat animals, dairy animals, poultry, and other animals. Meat animals include cattle, sheep, pigs, and goats. Dairy animals include cows, goats, and sheep. Poultry include chickens, turkeys, ducks, and geese. Other animals include horses, rabbits, and bees. 5. Within each group, there may be further subcategories based on specific characteristics such as breed, quality, or market value. 6. The classification of agricultural products is important for trade and export regulations, as well as for government policies related to food security, rural development, and environmental sustainability. Overall, the classification of agricultural products is a complex system that reflects the diversity and complexity of the agricultural sector. Understanding this system is important for anyone involved in agriculture, from farmers to policymakers to consumers.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值