笔记 - C#从头开始构建编译器 - 1】的更多相关文章

视频与PR:https://github.com/terrajobst/minsk/blob/master/docs/episode-02.md 作者是 Immo Landwerth(https://twitter.com/terrajobst),微软 .NET 团队的项目经理. 这一集的主要内容: 1.添加 Binder,充当语义分析作用. Binder 基于 SyntaxTree,大体上 SyntaxKind.XXX_Expression => Bind_XXX_Expression. 在…
视频与PR:https://github.com/terrajobst/minsk/blob/master/docs/episode-01.md 作者是 Immo Landwerth(https://twitter.com/terrajobst),微软 .NET 团队的项目经理. 这一集主要内容是一个原始的递归下降 Parser. 思路: 1.Lexer (1) enum SyntaxKind (2) abstract class SyntaxNode (3) class SyntaxToken…
视频与PR:https://github.com/terrajobst/minsk/blob/master/docs/episode-03.md 作者是 Immo Landwerth(https://twitter.com/terrajobst),微软 .NET 团队的项目经理. 这一集前半段主要是重构代码,后半段的主要内容: 1. 变量与赋值表达式 2. 加强诊断信息 Parser 非常清晰 using System.Collections.Generic; namespace Minsk.C…
全文参考 < 基于 python 的深度学习实战> import numpy as np from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers.convolutional import Conv2D, MaxPooling2D (x_train, y_train), (x_tes…
软工读书笔记  week 9                 ——<构建之法> 最近的三周我们正式开始我们的项目.然后我也把<构建之法>中的相关章节再拿出来读了一番.以下是一些感悟. 首先就是第十章“典型用户和场景”.书中提到,我们作为设计或者开发者,往往会以自己使用产品的习惯和熟悉程度来出发设计,但我们永远不能代表用户.搞一个“典型用户”会让我们考虑问题从用户的角度出发.由于我们正式开始项目后的第一周就是继续对用户做需求分析,这一章对我们有很大帮助. 我们也要考虑我们的典型用户.…
[HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用<q> 自成一段的引用就使用<blockquote> 不是所有浏览器都有相同的显示 块元素<block> <h1><h2>···<h6>和<blockquote>均是块元素 每个块元素都单独显示(分块显示) 内联元素<inli…
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch.org/blfs/view/stable-systemd/x/installing.html 一.制作构建xorg包的自动化脚本 1.需要完成书中bash shell启动文件章节 bash shell启动文件项目地址:http://www.linuxfromscratch.org/blfs/view…
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch.org/blfs/view/stable/x/xorg7.html 一.制作构建xorg包的自动化脚本 1.需要完成书中bash shell启动文件章节 bash shell启动文件项目地址:http://www.linuxfromscratch.org/blfs/view/stable/postl…
本周主要对<构建之法>中的一部分进行阅读. 一.软件与软件工程究竟是什么? 本书的概论部分就指出“软件 = 程序 + 软件工程”.而我们这门课的名字就叫“现代软件工程”.其实在上课之前,我对这门课存在一定的误解,我更多地把这门课归入“程序”部分.在我原来的理解中,像电设二一样,自己学新知识(当然很多在电设一已经学过),然好以团队的形式独立去完成一个项目,只不过电设属于硬件(也包含一部分软件),而软工则纯粹是软件了. 而上课之后却和我预想的不一样.首先每周读书笔记这个就让我非常不解,有些推荐书籍…
一.灵活构建的意义 一个优秀的构建系统必须足够灵活,它应该能够让项目在不同的环境下都能成功地构建.例如,典型的项目都会有开发环境.测试环境和产品环境,这些环境的数据库配置不尽相同,那么项目构建的时候就需要能够识别所在的环境并使用正确的配置. 还有一种常见的情况是,项目开发了大量的集成测试,这此测试运行起来非常耗时,不适合在每次构建项目的时候都运行.因此需要一种手段能让我们在特定的时候才激活这些集成测试. Maven为了支持构建的灵活性,内置了三大特性,即属性.Profile和资源过滤.   二.…
本文由Vikings(http://www.cnblogs.com/vikings-blog/) 原创,转载请标明.谢谢! 因为一直做Linux有关的开发工作,所以不习惯在Windows平台编译和测试代码.在没有Docker之前,windows基本就是一个IDE平台.在windows上面写好代码之后,再sftp上传到Linux平台进行编译,运行和测试. 这样做虽然没有错,但带来的就是工作效率低下. 并且久而久之,Linux平台里面安装了各种各样的编译器和调试工具,就显得杂乱无章了. 自从有了Do…
1 百度搜索busybox进入busybox官网(https://busybox.net/)作者:恒久力行 QQ:624668529  点击左侧DownloadSource下载最新稳定版的busybox-1.24.2.tar.bz2  2 将其复制到服务器并解压缩 tar xjf busybox-1.24.2.tar.bz2 3进入根目录,在其根目录下有一个INSTALL文件告诉我们怎么使用busybox     make menuconfig 什么都不设置,但要保存设置.然后执行下列指令更改C…
生成一个SpringBoot的项目 开发和学习SpringBoot需要一个生成好的SpringBoot项目. 1.可以使用一些IDE(Integrated Development Environment ,集成开发工具)来生成,比如IDEA. 2.还可以直接到Spring的官网(传送门)上直接下载生成的项目. 我使用两种方式试了试,发现生成的目录结构都差不多,主要的就是你用网页生成的,想在IDEA中使用需要导入,至于怎么导入......问问度娘呗... 下面是用网页版生成项目的例子. 项目生成…
优秀 Unix 程序哲学 首先,你要知道这个 C 程序是一个 Unix 命令行工具.这意味着它运行在(或者可被移植到)那些提供 Unix C 运行环境的操作系统中.当贝尔实验室发明 Unix 后,它从一开始便充满了设计哲学. 用我自己的话来说就是:程序只做一件事,并做好它,并且对文件进行一些操作.虽然"只做一件事,并做好它"是有意义的,但是"对文件进行一些操作"的部分似乎有点儿不合适. 事实证明,Unix 中抽象的 "文件" 非常强大.一个 Un…
“LINUX就是这个范”有一章专门介绍了Linux的构建,过程详细,很有意思.结合这方面的资料简要汇集一下 LFS 这个站点提供了从源代码构建一个Linux的详细步骤 书 http://archive.linuxfromscratch.org/lfs-museum/stable/LFS-BOOK-7.5.pdf 包 wget-list 经验证的包地址 http://archive.linuxfromscratch.org/lfs-museum/stable/wget-list 有的包拿不到的话,…
16.1 更多集合接口 集合类(这里指IEnumerable层次结构)实现的接口层次结构 16.1.1 IList<T>与IDictionary<TKey,TValue> 字典类一般只按照键进行索引,而不按位置索引. 列表"键"总是一个整数,"键集"总是从0开始的非负整数的一个连续集合. 解决数据存储或数据获取问题时,考虑 ], list[6]); list.Remove("Grumpy"); 16.2.3 搜索List&…
Explanation 现阶段console.log(...),util.inspect(...), JSON.stringify(...)在控制台输出已经够用了[2015/07/19]. 单元测试隶属于高级话题,虽然是程序员的自我修养,但现阶段完全不予接受. 而关于控制回调流程,先等Node.js摆脱"性能不理想的恶名"再说. Outline 4 构建与调试模块及应用程序 4.1 测试模块及应用程序 4.2 调试模块及应用程序 4.3 控制回调流程 4 构建与调试模块及应用程序 4.…
本文地址: http://blog.csdn.net/sushengmiyan/article/details/38316829本文作者:sushengmiyan-------------------------------------------------------------资源链接-----------------------------------------------------------------------翻译来源  Sencha Cmd官方网站:http://docs.…
http://blog.csdn.net/u013252773/article/details/21254257 本文主要介绍如何通过Netty构建一个简单的http服务. 想要实现的目的是: 1.Client向Server发送http请求. 2.Server端对http请求进行解析. 3.Server端向client发送http响应. 4.Client对http响应进行解析. 在该实例中,会涉及到http请求的编码.解码,http响应的编码.解码,幸运的是,Netty已经为我们提供了这些工具,…
一.进入目录 #cd u-boot-1.1.6_sndk6410 二.SD卡 make clean make distclean vim Makefile                                   (/CROSS 修改cross-compile= ....) vim /include/configs/smdk6410.h    (改205行名字,改448行启动方式为SD卡) make smdk6410_config make ./mkmovi              …
一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd),输入 node -v,如下图,如果出现相应的版本号,则说明安装成功 因为在官网下载安装node.js后,就已经自带npm(包管理工具)了,另需要注意的是npm的版本最好是3.x.x以上,以免对后续产生影响. 2.安装淘宝镜像 npm install -g cnpm --registry= https://re…
webpack基于nodejs环境运行,首先确认已经安装了node.js. 基础构建流程 新建一个文件夹,这个就是你项目的根目录. 在命令行中使用npm init命令初始化npm,会得到一个 ==package.json== 的文件. 在命令行中安装webpack和webpack-cli: npm install webpack //本地安装webpack,全局需要加 -g 命令,但建议本地安装 npm install webpack-cli //本地安装webpack-cli, webpack…
总时长近两周的结对项目终于算是结束了,马上要重新开启团队项目.于是这几天决定对<构建之法>一书中与团队项目及需求分析有关的章节进行重点阅读,希望能够从中得到启发,并运用到接下来的团队项目中去.        团队模式 团队这一部分提到了软件团队的很多模式.我认为,就我们目前的团队项目而言,更合适的应该还是“交响乐团模式”和“功能团队模式”. 先说“交响乐团模式”(吐槽一下书上给交响乐团配的图真是错误百出,当然这不是重点,只是觉得应该还是要严谨一些),我自认对一个乐团还是非常了解,在一个乐团中,…
一.手动构建一个简单镜像 我们以构建nginx的docker镜像为例:手动构建镜像 docker pull centos    安装基础镜像docker run --name mynginx -it centos /bin/bash    进入容器rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm 去mirrors.aliyun.com网站找到epel的yum源,复制链接,安装rpmyum instal…
8.3.1 安装和配置 运行Gulp需要Node.js环境,请参看第二章内容搭建Node.js环境.使用NPM全局安装Gulp,命令如下: npm install gulp-cli –g 然后,在项目根目录下创建package.json文件,命令如下: npm init 根据引导配置项目信息.然后安装Gulp依赖包,命令如下: npm install gulp –save-dev 在项目根目录下,创建gulpfile.js文件,内容如下: var gulp = require("gulp&quo…
构建模块化路由 const express = require('express') //创建路由对象 const home = express.Router(); //将路由和请求路径进行匹配 app.use('/home',home); //在home路由下继续创建路由 home.get('/index',()=>{ ///home/index res.send('欢迎来到博客展示页面'); }) 基础页面 //引入express框架 const express = require('exp…
了解了LFS的内容后,至于内核的更新就一目了然了 http://www.cnblogs.com/2018/p/3979305.html http://www.cnblogs.com/2018/p/3981399.html 不过有些资料LFS上也没有,如下是概要的汇总了相关的资料 内核更新 http://jingyan.baidu.com/article/08b6a591f187ff14a809228a.html 1.内核版本显示命令uname  -r       (uname查看操作系统信息,r…
脚本共享在这 http://pan.baidu.com/s/1nt6yiH7 version-check.sh : 这个是检查HOST机器的软件依赖情况 host-dep.sh:针对ubuntu10_64的缺少的包的安装[开发环境已安装] comp.sh:LFS7.5的图书大量的编译代码的整理脚本 ,可参数运行,如 ./comp.sh -s=5.1表示对应章节的执行步骤 如下是comp.sh的内容 #!/bin/bash :<<EOF安装依赖的包在这些独立的文件中,不用独立下载ftp://ft…
library('ggplot2') prices <- read.csv('G:\\dataguru\\ML_for_Hackers\\ML_for_Hackers-master\\08-PCA\\data\\stock_prices.csv',stringsAsFactors = FALSE) library('lubridate') #把日期列转成日期对象 prices <- transform(prices, Date = ymd(Date)) #prices中的数据只有三列,日期,股…
1,什么是线程安全性? 简单概括就是一个类在多线程情况下能安全调用就是线程安全 2,Servlet  的线程安全性  默认是非线程安全的,写servlet代码的时候需要注意线程安全,注意同步 3,volatile volatile实际上是保证了多线程情况下,有读取,有写入,保证了读取的都是最新的值. 开发中一般boolean值 开关灯用它定义. volatile的原理如下:不用volatile修饰的变量再多线程情况下, 每个线程会有一个变量从内存备份放在cpu储存上,每次都是读取这个备份的值 但…