关闭
当前搜索:

递归下降分析法(编译原理)

递归下降分析法的实现方案 递归下降分析法的原理是利用函数之间的递归调用模拟语法树自上而下的构造过程,具体实现方法概述如下: 1)每个非终结符对应一个解析函数; 2)产生式右侧为该产生式左侧非终结符所对应解析函数的“函数体”; 3)产生式右侧终结符对应从输入串中“消耗”该终结符的操作; 4)产生式中的‘|’对应函数体中的“if-else”语句; 5)对于扩展的BNF文法,产生式中...
阅读(1) 评论(0)

编译原理(七) 算符优先分析法(构造算符优先关系表算法及C++实现)

概念简述 移动归约分析法:自底向上的语法分析方法,也称为移动归约分析法。 最易于实现的一种移动归约分析方法,叫做算符优先分析法,而更一般的移动归约分析方法叫做LR分析法,LR分析法可以用作许多自动的语法分析器的生成器。 短语:文法G[S],αβδ是文法G的一个句型,S=>*αAδ且A=>+β则称β是句型αβδ相对于非终结符A的短语。 直接短语:若有A ⇒+β则称β是句型αβδ相...
阅读(3) 评论(0)

编译原理学习笔记一(待续)

这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的很棒呢,看比尔盖茨那年龄都写出BASIC了,真是觉得与大牛差距太大,一定要追赶~~       将前一段时间学的编译原理重新回顾一下。也与大家分享一下学习资料。   翻译器:能够将一种语言转换成...
阅读(6) 评论(0)

malloc原理和内存碎片

当一个进程发生缺页中断的时候,进程会陷入内核态,执行以下操作:  1、检查要访问的虚拟地址是否合法  2、查找/分配一个物理页  3、填充物理页内容(读取磁盘,或者直接置0,或者啥也不干)  4、建立映射关系(虚拟地址到物理地址)  重新执行发生缺页中断的那条指令  如果第3步,需要读取磁盘,那么这次缺页中断就是majflt,否则就是minflt。  内存分配的原理 从操作系统角度...
阅读(3) 评论(0)

操作系统内存管理之 内部碎片vs外部碎片

“碎片的内存”描述一个系统中所有不可用的空闲内存。这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用。这一问题通常都会发生,原因在于空闲内存以小而不连续方式出现在不同的位置。由于分 配方法决定内存碎片是否是一个问题,因此内存分配器在保证空闲资源可用性方面扮演着重要的角色。 internal fragmentation:when memory allocated...
阅读(3) 评论(0)

c++内存碎片

内存碎片的产生:         内存分配有静态分配和动态分配两种        静态分配在程序编译链接时分配的大小和使用寿命就已经确定,而应用上要求操作系统可以提供给进程运行时申请和释放任意大小内存的功能,这就是内存的动态分配。         因此动态分配将不可避免会产生内存碎片的问题,那么什么是内存碎片?内存碎片即“碎片的内存”描述一个系统中所有不可用的空闲内存,这些碎片之所以不能被使...
阅读(4) 评论(0)

深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好?

原文链接:http://www.sohu.com/a/123574005_465947 深度学习的三种硬件方案:ASIC,FPGA,GPU;你更看好? 2017-01-06 10:59 硬件十万个为什么 今天被罗振宇的跨年演讲刷爆了朋友圈。不过他讲深度学习和GPU的时候,真让人虐心。 显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类...
阅读(5) 评论(0)

深度学习硬件这件事,GPU、CPU、FPGA到底谁最合适?

二、数据的训练:CPU与GPU之争 2.1、现状 在如今的深度学习平台上,CPU面临着一个很尴尬的处境:它很重要又不是太重要。 它很重要,是因为它依旧是主流深度学习平台的重要组成部分:现百度首席科学家吴恩达曾利用16000颗CPU搭建了当时世界上最大的人工神经网络“Google Brain”并利用深度学习算法识别出了“猫”,又比如名震一时的“AlphaGo”就配置了多达1920颗CPU...
阅读(3) 评论(0)

Ice笔记---异步程序设计demo

最近学习了异步通信这一章:异步包括服务端的异步分派(AMD)以及客户端的异步调用(AMI)。 下面介绍一下如何实现简单的异步通信(主要实现了客户端的异步调用,AMD暂未体现):    1.首先编写Ice文件:Demo.ice [cpp] view plain copy module Demo{      interface Employee{...
阅读(2) 评论(0)

Ice笔记--C++线程与并发(二)

线程 1.Thread类     1.1概述           Ice中的基础线程是由ThreadControl类和Thread类来提供的(在IceUtil/IceUtil.h中定义):           Thread类是一个抽象基类,拥有一个纯虚方法run。要创建线程,必须特化Thread类,并实现run方法。       1.2 其成员函数            1)id:该函...
阅读(2) 评论(0)

redis、memcache、mongoDB有哪些区别?

下面的内容来自同事的总结,贴出来分享: Memcached Memcached的优点: Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。 支持直接配置为session handle。 坑少。 Memcached的局限性: 只支持简单的key/...
阅读(5) 评论(0)

谈谈redis,memcache的区别和具体应用场景

1. Memcached简介 Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了li...
阅读(5) 评论(0)

mongodb,redis,mysql 简要对比

本篇内容大部分不是原创,转载的会贴有链接。 准备学习下数据库,想对目前的主流数据库做一个简单的了解分析,就搜集了资料整理到了一块。 当下主流的要数NoSql数据库了,拥有强大的高并发能力。 mongodb: 它是一个内存数据库,数据都是放在内存里面的。 对数据的操作大部分都在内存中,但mongodb并不是单纯的内存数据库。 持久化方式: mongodb的所有数据实际上是存放在硬盘的,...
阅读(6) 评论(0)

Apache+tomcat的整合

为什么要做这个整合呢?当然,首先想到是就是Apache和Tomcat的区别。正因为有区别,有各自的优缺点才需要整合,取二者所长,弃二者所短。 Apache和Tomcat都可以在他们的官网下载: http://www.apache.org 那么首先就来说下Apache和Tomcat的区别: Apache只是一个Web服务器,可以作为独立的web服务器来运行,不过只支持静态网页,如(...
阅读(7) 评论(0)

Linux下select, poll和epoll IO模型的详解

http://blog.csdn.net/tianmohust/article/details/6677985     一).Epoll 介绍 Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程序,向...
阅读(4) 评论(0)
673条 共45页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:157354次
    • 积分:3786
    • 等级:
    • 排名:第9968名
    • 原创:111篇
    • 转载:562篇
    • 译文:0篇
    • 评论:0条
    文章分类