`
pengpeng
  • 浏览: 86608 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【原】程序设计语言的将来

 
阅读更多

 现今主要的编程范式有:“命令式编程”,“函数式编程”,“逻辑编程”; 现今大行其道的“命令式编程语言”有c,c++ ,java,c#,ruby等等。 函数式编程语言有“lisp,haskell,scala”等;当然ruby,scala应该是混合面向对象和函数式风格的语言。

命令式语言

为什么称为命令式语言呢? 命令式语言其实是当今“冯·洛伊曼”计算机体系结构一个抽象;程序员按照计算机的运行指令的方式编写程序,就好像不断向cpu发送指令一样;命令式语言代表有汇编语言,c语言,java,c++等等;

     在命令式语言领域有2个分支,一个是:结构化编程;一个是:面向对象编程;结构化编程是对程序代码的模块化抽象;而面向对象编程是对程序代码和数据的模块化抽象;以”类“的概念将数据和操作数据的方法模块化,并发展了”多态“,”继承“技术。让代码的重用和”动态类型加载“技术走向成熟。 

函数式语言

              函数式语言是基于数学领域的 λ 演算(lambda calculus)而来的。于命令式语言相比,函数式更强调函数的运算,而不是指令的运行。1958年第一个函数式编程语言Lisp诞生后,逐步产生了schemeHaskellCleanErlang等,而且现在流行的语言:ruby,javascript,scala;都有函数式编程的风格;

高阶函数:函数可以作为另一函数的参数;

        副作用:纯函数式语言是没有变量的。所以不存在副作用;所以函数式编程原生的支持并发编程;从这一点看,随着多核时代的到来,函数式编程将会流行起来。

静态类型和动态类型

静态类型和动态类型各有优缺点;静态类型一般是编译型的语言,在编译时可以类型检查;类型检查可以让程序员编写出安全的代码。并且IDE可以有语法提示,单元测试更加准确等优点。而动态类型语言,是在运行时由类型推理出类型的,编程人员并不需要明确指定类型,所以程序显得简单,优雅许多。而且动态类型可以很方便的实现:多态,ducking type;函数式编程;(代码块当作参数传递);  所以静态类型的优点就是动态类型的缺点。 

语言发展的方向

  从几本书《黑客与画家》这本书的作者极力推崇lisp函数式编程语言,以及预言100年后的编程中,以及现今逐渐流行的:ruby,scala语言,我们可以看出端倪; 那就是:每一种新语言的诞生都是吸纳了当前流行的各种语言的优点而创造出来的。比如scala语言,scala既是纯面向对象语言,也是函数式语言,也吸收了静态类型和动态类型的优点;scala真的让我们程序员像画家一样,让我们的思维跃然纸上; scala在编译时的类型推理系统,给我们带来了动态类型的优点。还有一个重要的优点:scala运行于jvm上,可以和java语言无缝结合,可以利用java已有的api库。并吸纳了jvm稳定,自动垃圾回收的所有优点。

所以,我觉得未来我们的面向对象编程中将看到更多的函数式风格代码。 

分享到:
评论

相关推荐

    C程序设计语言(第2版)中文译版及习题解答

    《C程序设计语言(第2版·新版)》是由Brian W. Kernighan和Dennis M. Ritchie共同编著的经典编程教材,被广大程序员亲切地称为“K&R”。这本书详细介绍了C语言的基础知识和高级特性,是学习C语言的重要参考资料。...

    高等院校Matlab程序设计课程双语教学的研究.pdf

    根据提供的文件信息,以下是对高等院校Matlab程序设计课程实施双语教学研究的知识点总结: 一、双语教学的意义 1. 双语教学定义:在教学过程中,教师运用两种教学语言系统地进行学科知识讲授,促进学生在知识、语言...

    《汇编语言程序设计》实验报告4.docx

    ### 汇编语言程序设计实验报告知识点解析 #### 实验背景与目标 本次实验的主要目的是让学生通过实际操作,深入理解汇编语言的基本概念、指令系统及其应用,并掌握利用汇编语言进行简单图形处理的方法。具体任务是...

    汇编语言实验8-中断程序设计[参考].pdf

    【汇编语言中断程序设计详解】 中断是计算机系统中一种重要的机制,用于处理突发事件或请求。在汇编语言编程中,理解和掌握中断处理是至关重要的。本实验旨在帮助学生熟悉中断的类型、处理过程以及如何设计中断程序...

    第46届ICPC国际大学生程序设计竞赛亚洲区预赛 上海站 正式赛题目

    第46届ICPC国际大学生程序设计竞赛亚洲区预赛上海站正式赛题目,无疑是这类竞赛中的佼佼者。本篇文章将详细解析比赛中出现的两个具体题目,并探讨如何通过这些题目来提高学生的算法设计能力和编程实践技巧。 首先,...

    基于微信的原创音乐小程序的设计与实现源代码(java+小程序+mysql+LW).zip

    通过这个项目,学习者可以全面了解微信小程序开发的整个流程,包括前端页面设计、后端逻辑处理、数据库设计以及服务器部署等多个方面,从而提升自身的开发能力,并为将来从事相关工作打下坚实的基础。

    《C语言课程设计案例精编》 原代码

    在实践中不断巩固和提高编程能力,为将来深入学习其他高级编程语言或系统级编程打下坚实的基础。这些案例的执行和调试将帮助你形成良好的编程习惯,提高问题解决能力和代码调试技巧,从而在IT行业中站稳脚跟。

    (前四届)湖南省大学生程序设计大赛题

    湖南省大学生程序设计大赛通常涉及的编程语言包括C、C++、Java等,题型多样,包括但不限于:排序与搜索、图论、动态规划、字符串处理、数据结构、算法设计等。这些题目不仅考验选手的基础编程技能,更注重实际问题...

    七层以下电梯通用的程序(原创带全注释).rar

    这个程序设计用于控制七层或以下的建筑电梯运行,确保电梯能够根据乘客的呼叫信号和楼层选择安全、高效地运行。 【描述】"三菱PLC例程_本资料仅供学习参考,禁止商业使用。" 强调了这个程序是三菱PLC(可编程逻辑...

    JAVA程序设计_第1章1

    【JAVA程序设计_第1章1】这门课程主要涵盖了JAVA概述,由南京邮电大学计算机学院的邓玉龙和成小惠教授讲授。课程旨在面向计算机专业的本科学生,从第1周到第18周,共计48学时,适用于2020-2021学年的第二个学期。...

    基于小程序的微信点餐系统源码(小程序毕业设计完整源码).zip

    本系统源码涉及的技术栈广泛,包括但不限于Java编程语言、Tomcat服务器、JDK1.8、MySQL数据库、Navicat数据库管理工具、以及小程序开发框架uniapp或原生小程序。其中,Java是后端开发的主要语言,Tomcat作为中间件...

    【小程序毕业设计】学生购电小程序源码(完整前后端+mysql+说明文档).zip

    本项目为【小程序毕业设计】学生购电小程序源码,它是一个完整的前后端项目,包含了数据库设计以及配套的说明文档。该项目的开发环境主要包括Java语言,使用了tomcat7及以上版本的服务器,JDK版本为1.8。在数据库...

    “C语言程序设计”与计算机相关课程的融合教学与实践.pdf

    《“C语言程序设计”与计算机相关课程的融合教学与实践》一文主要探讨了如何通过改革教学模式,将C语言程序设计课程与其他计算机相关课程相结合,以此来加强课程之间的联系,提高学生的自学和综合能力。文章内容涉及...

    【小程序毕业设计】django基于微信平台小区服务系统源码(完整前后端+mysql+说明文档).zip

    通过本项目的学习和实践,学生不仅能够加深对Java开发的理解,而且能够掌握小程序的开发技巧,为将来的软件开发工作打下坚实的基础。 项目中所包含的标签“小程序”,“mysql”,“毕业设计”,“课程设计”,和...

    c# 课程设计精品原题

    【C# 课程设计精品原题】集合了多个与C#编程相关的课程设计题目,旨在帮助学习者深入理解和掌握C#这门面向对象的编程语言。C#是Microsoft开发的一种现代编程语言,广泛应用于Windows桌面应用开发、游戏开发、移动...

    计算机毕业设计课程设计小程序-家政预约-项目源码

    本文将详细解析“计算机毕业设计课程设计小程序-家政预约-项目源码”中的关键知识点,包括微信小程序的开发环境、主要技术栈、文件结构及其功能,以及如何进行家政预约项目的实现。 首先,微信小程序是一种轻量级的...

    东南大学微原实验

    4. **程序设计**:学习如何编写简单的汇编程序,包括数据的声明、函数的调用、子程序的设计以及流程控制结构的使用。 5. **输入/输出操作**:通过汇编语言控制硬件设备,如打印机、显示器等,进行数据的读取和写入...

    【计算机王程序设计项目源码】springboot091小区车辆管理系统.zip

    本文档为“计算机王程序设计项目源码”中的“springboot091小区车辆管理系统”项目压缩包文件,该项目是一个基于Java语言开发的Web应用程序,利用Spring Boot框架构建,为小区车辆管理提供了一套完整的解决方案。...

    【小程序毕业设计】基于微信小程序寸金校园租车平台源码(完整前后端+mysql+说明文档+LW).zip

    本小程序毕业设计项目题为“基于微信小程序寸金校园租车平台源码”,该设计通过微信小程序这一平台,提供了完整的前后端解决方案,涵盖了个人中心、用户管理、车辆信息管理等多个模块,旨在为校园内的学生和教职工...

    Xojo 桌面程序 快速入门

    Xojo的设计哲学是提供一种快速而简单的方式来创建应用程序,并且它具有拖放式界面设计、面向对象编程语言和集成调试器等特点。它也支持跨平台交叉编译,这意味着在一台机器上可以为其他目标操作系统生成原生应用程序...

Global site tag (gtag.js) - Google Analytics