Stanford CS143 速通PA1教程

2023-11-08

今天做完了CS143的PA1,感觉最难的地方在于官方没有具体的文档(edX),然后COOL语言调试比较困难,以下是我对同样打算入坑CS143的同学的一些帮助吧:

速通前的准备

  • Virtual VM Setup:如果还没有搭好环境的,建议跟着官网的搭一下,我选择的是傻瓜式的搭建方法,就是用官方给的环境,这个最方便,也不容易出问题。
  • PA1.pdf(见我的仓库):没有在edX找到文档,这是我从别人的仓库借鉴过来的,里面详细地说明了要求的。
  • cool-manual.pdf(见我的仓库):同样是补充材料,很有用,在做之前可以先通读下,了解下COOL语言的语法,当然上课讲的几个例子(02-01 ~ 02-03)也需要过一遍。
  • example里面的list.cl:这个很有用,因为它作为链表,利用头插的方式实现,与栈的思想是一致的,改一改就可以做成栈了。

我的体会

以上三个看完(manual可以作为语法的补充,用的时候看),就可以着手写了,当然写得还是比较难受,毕竟是一门新的语言,然后其实最大的坑在于,COOL的调试非常拉跨,所以很多时候你只是模糊地知道在某一行的附近发生了错误,我遇到的一些坑如下:

  • if then else是一个整体,不能没有then,或者else
  • 不能在代码段中声明变量

代码实现与资料:

上述资料和我的代码实现,都在这个仓库里面

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Stanford CS143 速通PA1教程 的相关文章

  • 自己动手写basic解释器(一)

    自己动手写basic解释器 刺猬 http blog csdn net littlehedgehog 注 文章basic解释源码摘自梁肇新先生的 编程高手箴言 据他所说这个代码也是网上摘录的 源码解读参考 java编程艺术 java编程艺术
  • matlab MinGW-w64 C/C++ Compiler 的配置(附百度云下载资源)

    环境 win10 matlab r2019b 起因 安装某matlab工具包时需要使用命令 mex setup 弹出常见错误 即需要编译器 两种编译器的尝试 由于那道墙的存在 让试错成本变得如此巨大 首先 matlab推荐了两种编译器 1
  • Thumb和ARM指令不能切换问题(error:unsupported interworking call (Thumb -> ARM))

    1 报错现象 xxx ko ection 3 reloc 4 sym xxxxxx unsupported interworking call Thumb gt ARM 2 报错原因和分析 报错信息的翻译 程序不支持代码交织 thumb态切
  • warning: dereferencing type-punned pointer will break strict-aliasing rules(转)

    warning dereferencing type punned pointer will break strict aliasing rules 在 gcc 2 x 下编译没有任何 warning 信息的代码换到 gcc 3 x 版本下
  • Leetcode题解——30. 包含min函数的栈(辅助栈思想)

    题目地址 剑指 Offer 30 包含min函数的栈 力扣 LeetCode 目录 一 算法思想 二 代码实现 三 拓展思考 首先说结论 这道题虽然难度不大 但是算法思想很重要 是辅助栈应用的生动实例 所以 这里小编不再重点将代码 而是讲思
  • 【数据结构与算法】栈的实现(附源码)

    目录 一 栈的概念和结构 二 接口实现 A 初始化 Stackinit 销毁 Stackdestroy 1 Stackinit 2 Stackdestroy B 插入 Stackpush 删除 Stackpop 1 Stackpush 2
  • 数据结构-线性表之堆栈

    什么是栈 是一种数据结构 能够实现后进先出的一种业务场景 即栈中的元素被处理时 按后进先出的顺序进行 所以栈又叫做后进先出表 LIFO 例子 生活中的叠放在厨房桌子上的碗就是一种栈结构 放的时候只能把碗放在最上面 取的时候只能从最上面开始取
  • 华为OD机试真题 Python,简单的解压缩算法,入栈出栈,队列

    def decoder s str gt str n len s A3B1 C 3 3 bracket pos stack 不是数字都入栈 def repeat stack pos num 弹栈次数 m len stack pos repe
  • LLVM系列第十章:控制流语句if-else-phi

    系列文章目录 LLVM系列第一章 编译LLVM源码 LLVM系列第二章 模块Module LLVM系列第三章 函数Function LLVM系列第四章 逻辑代码块Block LLVM系列第五章 全局变量Global Variable LLV
  • 转帖:DirectShow 在VS2005中环境配置

    转载请标明是引用于 http blog csdn net chenyujing1234 baseclasses参考代码 VS2005下编译通过 http www rayfile com zh cn files 12ac1b0c 7335 1
  • MATLAB下配置C和C++编译器(MinGW)

    很多时候需要在Matlab下使用C或C 边写的代码 这时候就需要先用编译器将代码编译成Matlab可以用的mex文件 检测Matlab有没有可以使用的编译器 可以在命令行窗口下 输入mex setup 如果有的话就会显示出可以用的编译器 无
  • 剑指 Offer 09. 用两个栈实现队列

    题目链接 09 用两个栈实现队列 思路分析 用两个栈实现队列 首先把1 gt 2然后逐个弹出顶端元素 class CQueue public stack
  • 《程序员的自我修养——链接、装载与库》

    先不说别的 就单看书名就知道是什么意思了 作者的意思是想 演员的自我修养 的作者 斯坦尼斯拉夫斯基 致敬 老斯的那本书我没看过 但我看这本书的意思就是培养程序员的基本素质 你说啥叫基本素质 那就是你能够了解你编写的程序的任何一个运行的细节
  • 为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?

    为什么栈的数组长度必须是一个常量 而堆的数组长度可以是变量 栈区数组长度使用变量会报错 其原因就在于栈是编译器管理的 在程序运行前就已经分配好了空间的大小 而使用变量 编译器无法知道该分配多大的内存空间 于是报错 但堆上的内存是动态创建的
  • 【数据结构】详解栈的应用之表达式求值

    首先明白 前缀表达式 符号在前 如 3456 中缀表达式 符号在中间 如 3 4 5 6 后缀表达式 符号在最后 如34 5 6 后缀表达式不出现括号 中缀表达式转后缀表达式的方法 1 遇到数字 直接输出 添加到后缀表达式中 2 栈为空时
  • C++-必知必会_类模板成员特化(条款48)

    类模板成员特化 再提醒一下 虽然模板的特化和类的派生之间没有任何关 系 但在特化模板的时候 不妨借鉴一下派生的精神 也就意味 着一个完全特化或局部特化通常必须重新实现 主模板具备的 所有能力 例1 主模板 template lt typen
  • 结构体对齐(内存对齐)

    本文转自 http www ksarea com articles 20071004 sizeof struct memory html 有的时候 在脑海中停顿了很久的 显而易见 的东西 其实根本上就是错误的 就拿下面的问题来看 struc
  • make: *** No rule to make target 错误原因、分析和解决办法

    问题描述 在用codewarrior编译的时候 遇到编译器报如下错误 mingw32 make No rule to make target D CW Workspace Renalt PBG BOOT Project Settings L
  • 堆栈01--用两个栈实现队列

    堆栈01 用两个栈实现队列 jz05 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 用两个栈来实现一个队列 完成队列的Push和Pop操作 队列中的元素为int类型 测试用例 队列先进先出 输入 1 2 输出 1 2 解析
  • C语言深入学习--checklist4:宏、枚举、switch

    宏 1 宏的本质是什么 函数 语句 类型定义 或者其它 预编译器的文本替换 1 你知道语言设计者为什么设计宏吗 这些原因目前是否成立 在 C程序中 可以用宏代码提高执行效率 宏代码本身不是函数 但使用起来象函数 预处理器用复制宏代码的方式代

随机推荐

  • 图像分析技术大比拼:图像分类、图像识别、目标检测的优缺点分析与算法比较

    计算机视觉是人工智能领域的一个重要分支 它旨在构建能够理解和处理图像 视频等视觉信息的计算机系统 在计算机视觉领域中 图像分类 图像识别和目标检测是三个重要的任务 一 图像分类 图像分类是计算机视觉领域最基础的任务之一 它的目的是将一张图像
  • Linux--高级IO

    高级IO 1 五种IO模型 阻塞IO 在内核将数据准备好之前 系统调用会一直等待 所有的套接字 默认都是阻塞方式 阻塞IO是最常见的IO模型 非阻塞IO 如果内核还未将数据准备好 系统调用仍然会直接返回 并且返回EWOULDBLOCK错误码
  • PyCharm创建virtualenv方法

    Python的版本众多 在加上适用不同版本的Python Package 这导致在同时进行几个项目时 对库的依赖存在很大的问题 这个时候就牵涉到对Python以及依赖库的版本管理 方便进行开发 virtualenv就是用来解决这个问题的 下
  • Kafka 验证部署(单机版)kafka-producer-perf-test.sh 吞吐量测试工具的基本使用

    1 测试topic创建与删除 1 创建一个测试topic 名为test topic 创建3个分区 每个分区分配1个副本 因为是单机kafka 如果是集群的话可以分配多个副本 如果分配的副本数大于broker的数量时 会报错 bin kafk
  • 华为内部面试题库---(14)

    1 关于虚拟地址空间的说法错误的是 A 进程地址空间是用多少分配多少 4G仅仅是最大限额 B 进程的地址空间并不一定对应实际的物理页 C 不同进程的不同虚拟地址可以映射到相同的物理页 D 不同进程的相同虚拟地址不能映射到相同的物理页 解答
  • KNN回归-预测二手车

    KNN是一个典型的分类模型 就时预测类别 例如苹果 香蕉等 预测的结果是 训练集上已经包含的类别 并不会预测出新的类别 二手车价格预测是预测车的价格 是数值 理应按照回归算法来算 怎么用knn来实现回归问题呢 找到最近的K样本之后 我们直接
  • Android - 常见内存泄露问题盘点

    1 内存泄漏的本质 内存泄漏的本质就是对象引用未释放 当对象被创建时 如果没有被正确释放 那么这些对象就会一直占用内存 直到应用程序退出 例如 当一个Activity被销毁时 如果它还持有其他对象的引用 那么这些对象就无法被垃圾回收器回收
  • 层层深入高效地拿下商户收获刷脸红利

    无现金时代已陪伴我们许久 扫码支付给消费者带去诸多便利 正当人们刚刚养成扫码支付消费习惯的时候 刷脸支付这种新的支付方式又来了 两年后 我们或将迎来 无手机 支付时代 刷脸支付将使得消费者拥有更加流畅的支付体验 对商户来说 收款也变得更加高
  • python模块matplotlib.pyplot用法_python – 虽然使用pyplot.show(),但如何使用matplotlib保持图形大小不变?...

    看看下面的python示例 import matplotlib as mpl import matplotlib pyplot as plt mpl rcParams figure figsize 8 27 11 69 fig plt fi
  • Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串

    文章目录 3 列表 元组 字典 集合与字符串 3 1 列表与列表推导式 3 1 1 创建列表 下标访问 3 1 1 1 简介 3 1 1 2 创建列表 3 1 1 3 使用下标访问列表中的元素 3 1 2 列表常用方法 3 1 2 1 ap
  • 输入身份证号判断性别并求年龄

    include
  • 如何二次封装一个el-table组件并二次复用

    注 示例使用的是vue3和element 进行二次封装的 首先我们来看效果图 总共可以分为以下几个模块 表格数据操作按钮区域 表格信息提示区域 表格主体内容展示区域 表格分页区域 表单搜索没有封装在这里是为了降低代码的耦合性 有兴趣的可以查
  • c# dataGridView 数据合并单元格

    原文地址http sigechuizi cn article 133
  • unity登录界面和场景异步加载多种方式

    文字加载场景切换 挂到摄象机上 拖入文本 此文本用于显示加载文本的位置 实际显示内容位文中文本 正在加载中时显示 夏目正在努力加载哦 加载完成后显示 ok using UnityEngine using System Collections
  • 猿人学第3题-访问逻辑 - 推心置腹分析

    3 访问逻辑 推心置腹分析 1 请求页面并进行抓包 https match yuanrenxue cn match 3 2 对抓包进行分析 判断发现每次数据请求前先请求 https match yuanrenxue cn jssm 分析参数
  • 查T结果与Z结果的P值[转载]

    T检验P值表格来自 https blog csdn net m0 37777649 article details 74937242 Z检验表格来自 https wenku baidu com view 4926021f10a6f524cc
  • 关于虚拟机的认识

    一 在实体机 物理机 上 localhost它是一个域名 对应的ip地址为 127 0 0 1 计算机网络这本书中规定的 指的本机 关于127 0 0 1 为什么是 localhost 在 C Windows System32 driver
  • bash devtty No such device or address

    hexo d bash dev tty No such device or address error failed to execute prompt script exit code 1 fatal could not read Use
  • [囧途系列之特别篇]IT者的生存之路

    blog csdn net shenyisyn article details 8545410 此文特别送给 csdn网友 kkgbn 盖宝宁 前言 我的一个很早的转文 一对夫妻程序员的故事 看到了一个由kkgbn发表的评论 评论的大意是
  • Stanford CS143 速通PA1教程

    今天做完了CS143的PA1 感觉最难的地方在于官方没有具体的文档 edX 然后COOL语言调试比较困难 以下是我对同样打算入坑CS143的同学的一些帮助吧 速通前的准备 Virtual VM Setup 如果还没有搭好环境的 建议跟着官网