Welcome 微信登录

首页 / 软件开发 / C++

可配置语法分析器开发纪事(三点五) 生成下推自动机的具体步骤

可配置语法分析器开发纪事(三点五) 生成下推自动机的具体步骤

可配置语法分析器开发纪事(三点五) 生成下推自动机的具体步骤2014-11-01 cnblogs 陈梓瀚(vczh)刚刚发了上一篇文章之后就发现状态机画错了。虽然LiveWriter有打开博客并修改文章的功能,不过为了让我留下一个教训,我还是决定发一篇勘误。这个教训就是,作分析的时候不要随便“跳步”,该一步一步来就一步一步来。其实人呢,就是很容易忘掉以前的教训的了。第一个告诉我不能这么干的人其实是小学三年级的数学老师。当时我因为懒得...
一组实现邮件发送功能的C++封装类-SMailer

一组实现邮件发送功能的C++封装类-SMailer

一组实现邮件发送功能的C++封装类-SMailer2010-07-01晨光这个程序是笔者近日在实验邮件发送系统时写的,原本只想实现功能了事,可也许是程序员的惯常品性所至,几经完善的结果就成了如今这个样子了。网上也有不少有关于此的源码,但这些程序多半是不完整的,或者属于示例性程序,无法直接拿来使用。一些网络编程的书也有类似介绍,但又过于复杂了。笔者所写的这个程序以上述资源作为参考,并保有自身特点:功能齐全,小巧简洁,取名SMailer也正是出于此意(Simp...
可配置语法分析器开发纪事(四) 构造一个真正能用的状态机(上)

可配置语法分析器开发纪事(四) 构造一个真正能用的状态机(上)

可配置语法分析器开发纪事(四) 构造一个真正能用的状态机(上)2014-11-01 cnblogs 陈梓瀚(vczh)本来说这一篇文章要把构造确定性状态机和look ahead讲完的,当我真正要写的时候发现东西太多,只好分成两篇了。上一篇文章说道一个基本的状态机是如何构造出来的,但是根据第一篇文章的说法,这一次设计的文法是为了直接构造出语法树服务的,所以必然在执行状态机的时候就要获得构造语法树的一切信息。如果自己开发过类似的东西就会知道,类似LALR这种东...
基于TurboWay电话卡的语音服务系统编程

基于TurboWay电话卡的语音服务系统编程

基于TurboWay电话卡的语音服务系统编程2010-07-01徐景周将计算机和电话有机的结合起来形成无人电话自动服务系统,在当今已经社会越来越普遍化。这边用户只需拔打电话,根据那边计算机的自动提示,按相应的操作键既可完成他所需要的目地。你也想实现这些功能服务吗?下面就用我以前用VC做过的一个这方面的实例(投诉抢修管理系统)来告诉你。本系统只需安装一块TurboWay TW8A 电话卡,就可以完成你所见到的电话自动服务所有功能。具体实现步骤如下:1、将TW...
可配置语法分析器开发纪事(五) 构造一个真正能用的状态机(中)

可配置语法分析器开发纪事(五) 构造一个真正能用的状态机(中)

可配置语法分析器开发纪事(五) 构造一个真正能用的状态机(中)2014-11-01 cnblogs 陈梓瀚(vczh)上一篇博客写到了如何给一个非终结符的文法规则构造出一个压缩过的下推状态机,那么今天说的就是如何把所有的文法都连接起来。其实主要的idea在(三)和他的勘误(三点五)里面已经说得差不多了。但是今天我们要处理的是带信息的transition,所以还有一些地方要注意。所以在这里我们先把几条文法的最后的状态机都列出来(大图):本栏目更多精彩内容:h...
Windows中不规则窗体的编程实现

Windows中不规则窗体的编程实现

Windows中不规则窗体的编程实现2010-07-01roc一、序言在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用不规则窗体替代原先的矩形窗体,将会使这类程序更添情趣。典型的例子有windows 自...
可配置语法分析器开发纪事(六) 构造一个真正能用的状态机(下)

可配置语法分析器开发纪事(六) 构造一个真正能用的状态机(下)

可配置语法分析器开发纪事(六) 构造一个真正能用的状态机(下)2014-11-01 cnblogs 陈梓瀚(vczh)上一篇文章对大部分文法都构造出了一个使用的状态机了,这次主要来讲右递归的情况。右递归不像左递归那么麻烦,因为大部分右递归写成循环也不会过分的让语法树变得难以操作,不过仍然有少数情况是我们仍然希望保留递归的语法树形状,譬如C++的连等操作,因此这里就来讲一下这个问题。右递归是怎么形成的呢?在这里我们先不想这个问题,我们来看一个普通的文法。在上...
用Visual C++编程实现局域网多播

用Visual C++编程实现局域网多播

用Visual C++编程实现局域网多播2010-07-01hydnoahark最近一直在看<<Unix网络>>这本书,觉得这本书很适合初学socket的人。我一直对于多播的实现比较模糊,在看了书上的多播部分的介绍,才发现在程序中实现一个基本的多播功能是如此简单。在这里我不想照本宣科的大说什么理论,概念的东东,我的目的是说明在我们的代码中如何实现多播功能。开发环境: VC 6.0(sp5), 使用winsock2(ws2_32.lib)测试环境: 三台机器...
C++/CX的性能陷阱

C++/CX的性能陷阱

C++/CX的性能陷阱2014-11-02 infoq 译:孙镜涛使用C++/CX编写应用程序和编写正常的C++应用程序不一样。纯C++代码和Windows运行时(WinRT)之间的互操作性出奇的昂贵。基于Sridhar Madhugiri的视频 C++/CX 最佳实战中的内容,我们在本文中列举了一些在Windows 8开发中避免性能问题的方式。边界在应用程序的边界上会产生多种性能障碍。数据转换就是其中的一个例子。考虑一下一个Web服务客户端和应用程序剩余...
linux不同环境下c/c++程序移植方法

linux不同环境下c/c++程序移植方法

linux不同环境下c/c++程序移植方法2014-11-02 博客园 EE_NovRain这边之前的大多数项目都用的java,而自己用的c++,等到快要上线的时候才发现线上机器的gcc和libc的版本都巨低,跟自己测试开发用的环境不兼容,编译出的c++可执行文件没法运行。解决c++程序的移植问题费了挺大周章,如下是一个具体记录:1、问题描述如上所述,线上机器与开发机环境不兼容,需要做c++程序的移植。2、表现细节不表,总之就是程序没法运行,找不到对应的库...
VC下利用多线程实现文件的快速检索

VC下利用多线程实现文件的快速检索

VC下利用多线程实现文件的快速检索2010-07-01冯杰操作系统一般都提供了文件搜索的功能,但采用的是顺序搜索,搜索效率很低。而且按此法十分烦琐,在目录层次很多时,往往不好处理。本文采用多线程技术实现文件的快速搜索,代码量很少,执行效率极高。本文提出的多线程文件搜索的基本思想很简单,就是找到一个目录就开辟一个线程,而找到一个文件当然在线程内就处理了,这样实现了同步搜索。以下介绍其在vc平台下的具体实现:1.搜索用到两个win32的两个函数HANDLE F...
tcp连接探测Keepalive和心跳包

tcp连接探测Keepalive和心跳包

tcp连接探测Keepalive和心跳包2014-11-02 cppblog 采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由...
Visual C++利用多线程模拟并行计算

Visual C++利用多线程模拟并行计算

Visual C++利用多线程模拟并行计算2010-07-01随着信息时代的到来,需要处理的信息量越来越庞大,需要解决的问题越来越复杂,使得计算量剧增。通过提高单个处理器的计算速度和采用传统的"顺序(串行)"计算技术已难以胜任。因此,需要有功能更强大的计算机系统和计算机技术来支撑。并行计算机及并行计算技术应运而生。但由于缺乏实验环境和机器设备,我们普通人很难研究并行算法,即使有了想法也同样面临着无法验证的尴尬。不过,好在像面向对象语言c...
<< 261 262 263 264 265 266 267 268 269 270 >>