Data Abstraction, procedural abstraction
数据抽象和过程抽象的理解。
数据是要被计算的信息,过程表示对数据的操作和处理。但过程本身是数据时,过程就可以操作过程。
数据抽象
在Programming Language通常会提供基本的数据类型(数字,布尔值,字符串)和组合这些基本数据类型的抽象方式(Java中的数组和Class),通过对组合数据类型进行抽象和命名,我们就可以在抽象层次上进行工作,并不需要关心数据类型抽象的具体实现,当然抽象数据也可以和原子数据具有同样的用途来使用,例如作为参数和返回值或者对抽象数据再进行复合,也就是抽象数据类型具有闭包(复合的结果还可以进行复合)作用.
数据通常是根据类型来区分的,因为不同的类型可以拥有不同的操作,Class通常表示自定义的数据类型。
过程抽象
在Language的核心中,会提供对原子类型精心操作的过程,还包括一些特殊的语法,用来表明表达式的特定语义(例如命令式语言中的循环语句),也会通过对过程进行抽象的机制,通过对过程命名来代替相应的实现,随后就可以通过名称来引用所定义的过程,就像语言内置的原子工程一样,当然,我们可以过程抽象再进行组合,以形成更强大的抽象。不同的语言对过程抽象的支持不同,在Java中,过程就是类函数,只能附属于类并且只能被动被调用,并不能单做参数或者返回值来使用,当然过程也不能有子过程,在函数式语言(clojure, javascript)中,函数就是一个数据值,和其它的数据具有同样的作用,能够当做参数和返回值,也能够放在数据抽象的数据结构中,使用数据和过程的界限更加模糊,当然也更加灵活。
过程通常是对数据进行操作的,在面向对象语言中,过程通常是附属于数据类型的,也就是只能对附属类型进行相应的操作。在过程和函数式语言中,过程是独立出来的,但通过过程参数(或contract)来表示能够处理那些数据。
其实过程也是有类型的,根据输入的参数和输出的值来决定过程的类型,例如在Haskell或factor中就可以什么函数或者词的效应。
类型
类型描述值的集合。每一个值都是类型,值通常是语言的头等公民
语法
语法既不是数据,也不是类型,他们有自己特殊语义规则,
实现细节
分享到:
相关推荐
非专业人员勿关注,先修课程是离散数学,计算理论,自动机理论,编译原理等。人总是很浮躁,不肯静心钻研底层的理论。编程原理类似于最高深的内功,内功修炼的深厚了,什么招式学不会?有志于成为绝顶高手的人士可以...
Java-FOPL Java-FOPL是一(FOPL)的基于Java的元语言抽象。 这项工作所采用的方法是尽可能地反映。 这项工作的目的是使谓词逻辑表达式清晰(读:效率不高)和直观,并使代码的结构反映通常在课堂环境中解释FOPL所...
**C#语言实现抽象工厂功能** 抽象工厂模式是一种设计模式,属于创建型模式,它提供了一种创建对象族的方式,而无需指定其具体类。在C#中,我们可以利用接口和类来实现这一模式,使得代码更加灵活,易于扩展。 在C#...
《数据抽象和问题求解-C++语言描述(第四版)源码》是一本深度探讨C++编程中的数据抽象和问题解决策略的专业书籍。在学习C++编程的过程中,数据抽象是核心概念之一,它涉及到如何设计和实现复杂系统,以及如何通过...
Java语言的接口与抽象类是面向对象编程中的关键概念,它们在设计模式和代码组织中起着重要作用。这里我们将深入探讨这两个概念,并分析它们的异同。 首先,接口(Interface)是Java中的一种特殊类型,它通过使用`...
Python语言抽象了问题和解决方案,有程序复用的概念,能够有效帮助学生使用计算机解决各类计算问题。 Python语言的函数库功能强大,可以用简单的代码完成复杂的功能。例如,求参数最小值的函数,参数也可以为序列。...
该语言具有高度的抽象性和精炼性,需要通过特定的规则才能将其转换为人类可理解的语言。 ### 一、基本概念 #### 魔王语言规则 1. **规则形式 (1)**: \(α→β_1β_2……β_m\) —— 表示一种从左到右的解释过程。...
在C#编程语言中,抽象类(abstract class)和抽象方法(abstract method)是面向对象设计中的关键概念,它们主要用于支持多态性。抽象类是一种特殊的类,它不能被实例化,只能作为其他类的基类。抽象方法则是没有...
C语言虽然比汇编语言抽象层次高,但其核心也是一系列的指令,这些指令通过编译器转化为机器码。以下是一些C语言的基本元素: 1. **变量声明**:如`int x;`,定义了一个整型变量x。 2. **赋值操作**:如`x = 5;`,...
本章节主要介绍了计算机软件技术的基础知识,涵盖了程序、软件、算法、数据结构等基本概念,并对程序的静态和动态属性、程序语言抽象的符号表达、程序对数据施行算法的过程、程序的分层嵌套结构等进行了详细的讲解。...
Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一。 ### 一、Java抽象类 #### 定义 抽象类在Java中是一种特殊类型的类,它不能被实例化,即无法...
C#作为一种强大的面向对象编程语言,支持抽象类和抽象方法的概念。本文将详细介绍C#中的抽象类与抽象方法,包括它们的基本概念、特点以及如何在实际编程中使用。 #### 二、抽象类 抽象类是一种特殊类型的类,它主要...
从程序构建过程中的抽象手段,到数据构建中的抽象,再到模块化、对象和状态的概念,最后深入探讨了元语言抽象和使用寄存器机进行计算等内容。书中的主要内容可以划分为以下几个部分: 1. 使用程序构建抽象。这一...
在“数据抽象和问题求解-C++语言描述4e_源代码”这个压缩包中,可能包含了各种示例代码,涵盖了上述概念的应用。学习者可以通过阅读和运行这些代码,了解如何在实际问题中运用数据抽象和问题求解的思想。同时,这也...
网络基础抽象语言-电脑(加工)-二进制-抽象语言 网络基础抽象语言是指在计算机网络中使用的抽象语言,可以将人类可读的语言转换为计算机可以理解的二进制语言,从而实现人机交互。这个过程可以分为三个层次:应用...
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
计算机病毒抽象理论及描述语言研究 博士论文
Java语言中抽象类和接口的应用探究 Java语言中抽象类和接口是两种机制,都是支持抽象类的,但它们之间存在很大的区别。在实际项目设计过程中,到底是选择抽象类还是接口呢?它们的选择反映出对于需求本质的合理理解...
【英汉语言对比:抽象与具体】 在英语和汉语中,语言表达的抽象与具体有着显著的差异。这种差异体现在多种方面,对于理解和翻译工作至关重要。以下是对这一主题的详细探讨。 首先,英语倾向于使用抽象的表达方式,...
在面向对象编程中,抽象类和抽象方法是重要的概念,特别是在 Delphi 这样的编程语言中。抽象类是一种特殊的类,它不用于直接创建对象,而是作为其他具体类的父类,提供一种共享接口和通用行为的方式。抽象类通常用 `...