本书介绍程序设计语言编译程序构造的一般原理、基本设计方法和主要实现技术,主要内容包括文法、自动机和语言的基础知识,词法分析,语法分析,语法制导的语义计算,语义分析,中间代码生成,运行时存储组织,代码优化和目标代码生成。
除了基本设计原理外,书中还包含两个小型编译程序的设计实例,可选作课程设计的素材。
一个是PL/0语言编译程序,其设计和实现框架贯穿于本书相关章节中;
另一个是简单面向对象语言Decaf的编译程序。
本书最后还介绍了业界广泛使用的开源编译器GCC及和它紧密相关的Binutils工具链,通过一系列程序实例说明这些工具的作用和基本用法。
本书可作为高等院校计算机科学与技术相关专业的本科生教材,也可作为相关教师、研究生或工程技术人员的参考书。
2024/8/22 15:53:19 13.53MB 编译原理
1
此为本人写的MC9S12XEP100的IIC模块的硬件驱动程序。
具体参照博文https://blog.csdn.net/lin_strong/article/details/80327959,如后续有更新代码或勘误,请直接到博文里查阅,好像CSDN不允许更新/删除资源。
其中包含了驱动代码以及示例代码,示例代码包括裸奔程序的示例以及uCOS-II下的示例。
注意,代码中的裸奔程序的那个示例直接运行时会跑飞,需要在IIC.h文件中的voidnearIIC_ISR(void);这个声明前加一个interrupt才行。
在运行基于uCOS的那个示例时又得把这个interrupt去掉才行。
暂时没有找到能够很方便地切换中断声明的方法。
2024/8/15 2:57:30 2.57MB IIC总线 MC9S12XEP100 uCOS-II
1
一个SQL注入漏洞检测原型工具,由SQL注入动态检测工具,SQL漏洞静态代码检测工具,测试用的网站3部分组成。
用Java语言实现。
运行时需eclipse等IDE支持。
可供学习参考。
2024/8/10 1:10:03 10.78MB SQL注入 原型工具 Java 爬虫
1
Clojure是一种动态、通用的程序设计语言,既有脚本语言易于学习和交互开发的特点,又具备适合多线程编程的高效和强健的基础架构。
虽然Clojure属于编译语言,却是完全动态的,所有特性都能在运行时得到支持。
借助可选的类型提示和类型接口,Clojure可以方便地访问Java框架,确保在调用时不会出现Java反射。
  Clojure是一种Lisp方言,继承了Lisp“代码即数据”的设计理念以及功能强大的宏系统。
总体而言,Clojure属于函数式编程语言,包括丰富的不可变和可持久化数据结构。
当需要处理可变状态时,Clojure通过软件事务内存与响应式Agent系统,确保实现清晰、正确、多线程的设计。
2024/8/10 0:34:55 99.56MB clojure
1
Unity真机运行时调试输出插件SRDebuggerv1.9.1
2024/8/7 5:14:15 1.34MB unity3d debug
1
在上一个版本中加入了开机自启动功能,程序第一次运行时使用管理权限运行,即可将自启信息写入注册表,同时修正了自启后找不到脚本文件问题
2024/8/2 18:36:27 19.87MB 关机助手 UDP Qt 工具
1
(VC2010运行库)MicrosoftVisualC++2010RedistributablePackage(x86)安装VisualC++2010库的运行时组件,使用户能够在未安装VisualC++2010的计算机上运行使用VisualC++2010开发的应用程序.
2024/7/31 13:05:42 5.97MB Visual C++ 2013 x86
1
火龙果软件工程技术中心摘要:所谓SMC(SelfModifyingCode)技术,就是一种将可执行文件中的代码或数据进行加密,防止别人使用逆向工程工具(比如一些常见的反汇编工具)对程序进行静态分析的方法,只有程序运行时才对代码和数据进行解密,从而正常运行程序和访问数据。
计算机病毒通常也会采用SMC技术动态修改内存中的可执行代码来达到变形或对代码加密的目的,从而躲过杀毒软件的查杀或者迷惑反病毒工作者对代码进行分析。
由于该技术需要直接读写对内存中的机器码,所以多采用汇编语言实现,这使得很多想在自己的程序中使用SMC技术进行软件加密的C/C++程序员望而却步。
针对这种现状,本文提出了几种基于C/C+
1
UnityEngine中纹理修改的完整解决方案,使用GPU加速插件可为编辑器和运行时提供超快的纹理调整。
支持的调整:•色调/饱和度/亮度•亮度/对比度•色阶•模糊高斯/方向/颗粒•边缘填充•噪声•像素化•锐化•色彩空间•灰度•阈值•LUT•颜色叠加•颜色替换•水印•渐变斜坡•通道导入/交换/反转•图像翻转/耕作/偏移/旋转•按Alpha,颜色和自定义矩形裁剪•渐变生成器(线性,径向,菱形,角度)
2024/7/24 0:36:01 25.46MB unity 调色插件
1
1、图书管理系统以UNIX系统文件部分系统调用为基础设计一个简易的图书管理系统。
要求实现:图书的录入、查询、借阅、清理、统计等功能、还要实现对每天的借阅情况进行统计并打印出统计报表,操作界面要尽量完善。
图书资料信息必须保存在文件中。
2、信号通信与进程控制(l)进程的创建:编写一段程序,使用系统调用fork()创建两个或多个子进程。
当此程序运行时,在系统中有一个父进程和其余为子进程在活动。
(2)进程的控制:在程序中使用系统调用lockf()来给每一个进程加锁,实现进程之间的互斥。
(3)进程通信:①软中断通信;
②在程序中使用实例signal(SIGINT,SIG_IGN)和signal(SIGQUIT,SIG_IGN)进行通信操作,观察执行结果,并分析原因。
(4)软中断的捕获与重定义。
首先定义一个服务函数function(),然后利用signal(sig,function)系统调用来实现中断的捕获与改道。
(5)使用操作系统保留给用户的信号SIGUSR1和SIGUSR2进行通信。
(6)扩展程序,使之成为信号或事件驱动的应用程序。
3、管道通信利用UNIX系统提供的管道机制实现进程间的通信。
(1)管道通信。
利用pipe()和lockf()系统调用,编写程序,实现同族进程间的通信。
使用系统调用pipe()建立一条管道线;
创建子进程P1、P2、…。
子进程Pi分别向管道各写信息,而父进程则从管道中读出来自于各子进程的信息,实现进程家族间无名管道通讯。
扩展之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
(2)命名管道通信:利用mkfifo(name,mode)或mknod(name,mode,0)创建一个命名管道,然后利用它和文件部分系统调用实现不同进程间的通信。
改造之,使之成为客户/服务器模式,并完成一定的任务(自己定义)。
4、进程间通信(IPC):消息机制(1)消息的创建、发送和接收使用系统调用msgget(),msgsnd(),msgget(),及msgctl()编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为175的消息队列,等待其他进程发来的消息。
当遇到类型为1的消息,则作为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一个消息后显示一句“(server)received”。
3)CLIENT端使用key为175的消息队列,先后发送类型从10到1的消息,然后退出。
最后的一个消息,即是SERVER端需要的结束信号。
CLIENT每发送一条消息后显示一句“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而实现C/S通讯要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如读取或查询某个文件,或者执行一个shell命令等。
此功能可由设计者自己定义。
在此基础上可以扩展客户端,比如设计一个菜单界面,接收不同的选项,并发送到服务器端,请求对方提供服务。
5、进程间通信(IPC):共享内存机制(1)共享存储区的创建,附接和断接使用系统调用shmget(),shmat(),msgdt(),shmctl(),编制一长度为1K的消息发送和接收的程序。
1)为了便于操作和观察结果,用一个程序作为“引子”,先后fork()两个子进程,SERVER和CLIENT,进行通信。
SERVER和CLIENT也可分别为2个各自独立的程序。
2)SERVER端建立一个Key为375的共享区,并将第一个字节置为-1,作为数据空的标志,等待其他进程发来的消息。
当该字节的值发生变化时,表示收到了信息,并进行处理。
然后再次把它的值设为-1。
如果遇到的值为0,则视为结束信号,取消该队列,并退出SERVER。
SERVER每接收到一次数据后显示“(server)received”。
3)CLIENT端建立一个Key为375的共享区,当共享取得第一个字节为-1时,SERVER端空闲,可发送请求。
CLIENT随即填入9到0。
期间等待Server端的再次空闲。
进行完这些操作后,CLIENT退出。
CLIENT每发送一次数据后显示“(client)sent”。
4)父进程在SERVER和CLIENT均退出后结束。
(2)功能扩展:在sever端创建一个服务函数,从而形成C/S通讯模式要求SERVER每接收到一次数据后不仅仅显示“(server)received”,而是做一些其它事情,比如
2024/7/19 3:04:26 918KB 操作系统
1
共 357 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡