Skip to content

QwQsCC/interpreter_exp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

编译原理实验-解释器程序

本项目github仓库

目录

依赖和运行

GUI使用的是ImGUI,后端使用glfw3+opengl3,glfw的依赖已经作为子模块导入到仓库中。如果未安装opengl3请自行安装,或者使用其他的渲染管线。

使用CMake默认的option编译之后build/examples/interpreter_examples下有一个draw_lang_main的可执行文件,这个就是解释器主体,可能看上去字体有点小,不想调了,功能基本正常。

example image

项目功能说明

一个函数绘图语言的解释器,这个函数绘图语言简称Draw语言,基本语法见实验PPT。

相较于2019样例代码做出的一些改进主要是工程上的改进,功能上的改进基本就只多了一个支持了科学计数法 1e3 1e-2 之类的 菜狗落泪

工程上的改进:

  1. 用CMake,跨平台编译,现在不依赖Windows了,大家可以在Linux上也编译使用(MacOS上没试过,买不起Mac 哭)
  2. CMake除了跨平台管理大项目编译也挺方便,不然之前那种用命令行终端管理,想加个依赖都头疼。
  3. 用了些智能指针容器还有文件流啥的,现在写cpp感觉离不开这些了,如果追求更极致的性能还有folly库提供的容器 🤔
  4. 之前的前端貌似有点Bug,我拖动一下页面绘制的figure就消失了,不知道是不是我的问题,现在用ImGUI实现了之后应该就没有这个问题了,还多支持了清空画布功能。
  5. 增加了Gtest,现在写测试更方便一些了
  6. 增加了spdlog,更好看智能的日志输出

后续TODO

很多地方因为时间问题实现的比较乱,比如lexer和后面的parser以及semantic的命名没有统一,后面需要改一改 现在spdlog还是处于一个当cout用的阶段,后续改进一下区分清楚debug info等各个level的输出 词法分析器那里的实现头文件还塞在src里面,后续需要整理一下挪到外面 测试不全面,急着交任务,很多东西都没测不知道有没有bug,后面可以加一点测试

About

XDU 软件工程专业 编译原理实验函数绘图语言的解释器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors