第二次课后作业 计算对象的实现—存储 请给出R语言和Python语言中哪些值是可存储值,哪些值是不可存储值?

Slides:



Advertisements
Similar presentations
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
Advertisements

传媒学生应该如何度 过四年大学生活?. 进入大学一个多月了,用一个词形容大 学生活 自卑感 不适应 空虚感 被动感 孤独感 失望感 一、大学新生不适应大学生活的表现:
動動腦時間 — 腦筋急轉彎 —. 1. 有三個小朋友在猜 拳,一個出石頭,一 個出布,一個出剪刀, 請問三個人共有幾根 指頭? 答案: 60 根.
我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
董笑菊 电子信息与电气工程学院 计算机科学与工程系
广州宜家选址分析 0连锁 李若谷 陈玉风 黄小飞 蓝柔盈.
Lego 機器人 基礎元件與感測器.
兒歌創作與實務 產學合作音樂教師  林麗青 99/11.
学党章党规、学系列讲话,做合格党员 学习教育
34 府学胡同的文天祥祠,相传是南宋民族英雄文天祥当年遭囚禁和就义的地方,1376年明洪武九年建祠 。
第一章 認識程式語言.
新建本科院校 应用型人才培养若干问题探析 张德江.
讓人看了難忘的故事 中藥房轉載 分享人生積極正面訊息 創造宇宙合諧快樂能量.
國中適性輔導宣導 生涯導航 談國中學生適性輔導 石牌國中 輔導室葉嘉惠.
“人无礼则不生,事无礼则不成, 国无礼则不宁” 荀子
高考文言文的整体阅读.
阅卷归来话反思 及备考.
计算机与程序.
7--11便利店.
采编班的“三朵奇葩”? 精品团会主题.
程序设计思想与方法入门篇 庄天红.
第11章 使用类.
程設一.
口才与思辨并重 专业与职业共扬 -----法学院 “口才训练营” 精品活动介绍.
项目申报及投资推进工作实务 更多模板、视频教程: 兰溪市发展和改革局 2013年9月 1.
 人体的营养.
行为礼仪培训 二○○八年十一月.
Module 5 Zoo Animals.
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
Linked List Operations
陳維魁 博士 儒林圖書公司 第七章 參數的傳遞 陳維魁 博士 儒林圖書公司.
Chap 3 堆疊與佇列 Stack and Queue.
第3章 變數、資料型別與運算子.
Scope & Lifetime 前言 Local Scope Global Functions & Objects
力量 磁铁 磁性.
Chapter 3 行程觀念 (Process Concept)
Function.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
Lesson 17 Renting an Apartment 租房子
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
樹 2 Michael Tsai 2013/3/26.
資料庫 靜宜大學資管系 楊子青.
VIDEO COMPRESSION & MPEG
第4章 汇编语言程序格式  汇编程序功能  伪操作  汇编语言程序格式  汇编语言程序的上机过程.
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
Total Review of Data Structures
Build an app to measure ECG-base HRV via a Smart wristband
第8章 資料排序 資料結構設計與C++程式應用
Linked Lists Prof. Michael Tsai 2013/3/12.
C语言环境配置.
Oop8 function函式.
程式語言 程式語言發展史 資料型態 程式指令 程序定義和使用.
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
第七課: 常見的企業保險保障 I 介紹課題 主要關於企業常用的各種保險保障 會分兩部份,用兩個課堂的時間進行討論.
▲重合的概念 ▲對應頂點、對應邊、對應角 ▲全等的記法 ▲全等性質 ▲三角形全等性質
中国农业科学院博士后学术论坛 博士后基金申请的经验及体会 中国农业科学院生物技术研究所 秦 华 博士
医学统计方法.
Create and Use the Authorization Objects in ABAP
TinyDB資料庫 靜宜大學資管系 楊子青.
第一次课后作业 计算对象的表示—值与类型 请给出R语言和Python语言中哪些值是头等程序对象?为什么?
编译原理课程设计 课程设计内容 扩展PL/0语言的实现(含编译器和解释器)  编译器:把源程序翻译成中间语言程序
挑戰C++程式語言 ──第9章 函數.
論語 卷八 泰伯 輔二甲 S 顏巧俐 指導老師:胡瀚平.
第十二章 位运算.
辅导课程十二.
有理数的乘方(二).
第七章 程序调试方法 异常 崩溃.
陳維魁 博士 儒林圖書公司 第六章 領域與範圍 陳維魁 博士 儒林圖書公司.
我必要在公義中見到你的榮面 每當我醒來時見你形像就得滿足 我願像你,完全像你 故我必要見到你的榮面
Presentation transcript:

第二次课后作业 计算对象的实现—存储 请给出R语言和Python语言中哪些值是可存储值,哪些值是不可存储值?

计算对象的实现—存储 可存储值Storable:指最小的可直接访问的可存储单元中的值。 Pascal可存储值:集合不能选择更新某一元素,所以是可存储值; Pascal, C, Ada数组可选择更新,不是可存储值。

计算对象的实现—存储 R语言中的可存储值和不可存储值 可存储值 不可存储值 (逻辑型、数值型、字符型、复数型)常量、变量; 向量中的元素、因子中的元素、矩阵中的元素、数据框中的元素、多维数组中的元素、列表中的元素、时间序列中的元素; 不可存储值 向量、因子、矩阵、数据框、多维数组、列表、时间序列;

计算对象的实现—存储 Python语言中的可存储值和不可存储值 可存储值 不可存储值 字符串,整数,浮点数,虚数,布尔型; 列表中的元素,元组,字典中的元素,集合中的元素,文件中的元素; 不可存储值 列表,元组中的元素,字典,集合,文件;

计算对象的实现—存储 存储模型,分为以下三种: 静态存储模型 动态存储模型 堆存储 栈存储

计算对象的实现—存储 R语言中的存储模型 静态存储模型 所有语言的全局变量都是静态对象; 在R语言中: 使用”<<-”运算符进行赋值的都是全局变量; 另外,在函数外声明的变量也是全局变量;

计算对象的实现—存储 R语言中的存储模型 动态存储模型 Everything is R lives in an environment. An environment, like everything else in R is an object. Objects hold stuff. Environments are specialized, they can only hold two things: A frame This is just a collection of named objects. The environment’s owner aka the enclosing environment. This is just a reference to another environment. 在R语言中,不管是变量,对象,或者函数,都存在于R的环境空间中 计算机中的文件总是储存在一个个文件夹之中,而这些文件夹又可能储存在另一个父文件夹之中。R存储对象也存在这样一个类似的层级系统结构。每个对象都存储在一个环境(environment)中,环境是一个类似于列表的对象,概念上接近文件夹。

计算对象的实现—存储 R语言中的存储模型

计算对象的实现—存储 R语言中的存储模型 Environment basics Environments

计算对象的实现—存储 R语言中的存储管理机制 R中的对象在内存中存于两种不同的地方: 一种是堆内存(heap),每个大小为8字节,新来一个对象就会申请一块空间,把值全部存在这里,和C里面的堆内存很像。 第二种是地址对(cons cells),和LISP里的cons cells道理一样,主要用来存储地址信息,最小单元一般在32位系统中是28字节、64位系统中是56字节。

计算对象的实现—存储 Python语言中的存储模型 静态存储模型 所有语言的全局变量都是静态对象; 在Python语言中: 使用global声明全局变量; 用同样的global语句可以指定多个全局变量,比如: global x, y, z。

计算对象的实现—存储 Python语言中的存储模型:动态存储模型 Stack — variables Heap — data structures

计算对象的实现—存储 Python语言中的存储管理机制 引用计数 垃圾回收 内存池机制

计算对象的实现—存储 Python语言中的存储管理机制:引用计数 有两种存储方式,按值传递和按址传递: 一种是存储在stack; 一种是存储在heap上; 在python中只有按址传递,都存储在heap上; 在Python中,每个对象都有存有指向该对象的引用总数,即引用计数(reference count)。

计算对象的实现—存储 Python语言中的存储管理机制:垃圾回收 Python 支持两种内存回收: 一种是引用计数; 另一种是gc。 Python默认采用引用计数来管理对象的内存回收。当引用计数为0时,将立即回收该对象内存,要么将对应的block标记为空闲,要么返还给操作系统。 垃圾回收时,Python不能进行其它的任务。

计算对象的实现—存储 Python语言中的存储管理机制:内存池机制 Python的内存机制以金字塔行,-1,-2层主要有操作系统进行操作, 第0层是C中的malloc,free等内存分配和释放函数进行操作; 第1层和第2层是内存池,有Python的接口函数PyMem_Malloc函数实现,当对象小于256K时有该层直接分配内存; 第3层是最上层,也就是我们对Python对象的直接操作;

计算对象的实现—存储 Python语言中的存储管理机制:内存池机制 经由内存池登记的内存到最后还是会回收到内存池,并不会调用 C 的 free 释放掉,以便下次使用。 对于简单的Python对象,例如数值、字符串,元组采用的是复制的方式是深拷贝; 也就是说当将另一个变量B赋值给变量A时,虽然A和B的内存空间仍然相同,但当A的值发生变化时,会重新给A分配空间,A和B的地址变得不再相同;

计算对象的实现—存储 Python语言中的存储管理机制 Run-time Stack Heap 1,2,3,4 4 add Activation Record main Activation Record list1 module Activation Record k Heap 1,2,3,4 4 Run-time Stack k=4 def main(): main() list1=[] def add(): add() for x in range(1,k): list1.append(x) print(list1)

第二次课后作业 计算对象的连接—束定 请给出R语言和Python语言中采用的束定机制和作用域规则。

计算对象的连接—束定 R语言采用的束定机制和作用域规则 束定机制:无类型语言的束定机制 一个变量名可以完全动态地束定到任何类型的值或操作集上。

计算对象的连接—束定 R语言采用的束定机制和作用域规则 作用域规则:词法作用域 采用词法作用域的变量叫词法变量。 词法变量有一个在编译时静态确定的作用域。词法变量的作用域可以是一个函数或一段代码,该变量在这段代码区域内可见(visibility);在这段区域以外该变量不可见(或无法访问)。

计算对象的连接—束定 动态作用域规则 在采用动态作用域的语言里,变量与值的绑定是依赖于程序执行流程的,它是选取在运行的过程中所遇到的最近绑定。 2

计算对象的连接—束定 Python语言采用的束定机制和作用域规则 束定机制:无类型语言的束定机制 一个变量名可以完全动态地束定到任何类型的值或操作集上。

计算对象的连接—束定 Python语言采用的束定机制和作用域规则 作用域规则:词法作用域