1 个不稳定版本
0.1.0 | 2023年3月25日 |
---|
#1997 在 开发工具
49 次每月下载
在 pollen 中使用
6KB
126 行
花粉编程语言
一种具有XML语法的编程语言。脚本是由运行时提供的复杂指令序列。可以通过通用插件向运行时添加新元素标签。
对C语言使用静态检查以实现零缺陷程序。
HTML模板 是一个HTML模型。模板是预格式化的HTML,可以在其中插入文本或图像内容。大多数现代模板语言都包含某种形式的编程。Pollen也这样做,但它重用了XML语法,而不必创建全新的语法。因此,新程序员可以在学习如何使用Pollen语言编码的过程中,从一开始就熟悉这种语言。
XML 标签表示数据结构并包含元数据。
最初的想法是创建一个通用网关接口(CGI)可执行文件和Apache模块。类似于PHP。但是,Pollen不是解释脚本,而是加载编译后的动态库。它提供了一个简单的模板引擎,同时保持了编译语言的速度。
添加Apache运行时库(APR)以确保良好的安全性。APR提供动态数组和内存池,以减轻使用后释放、缓冲区溢出和缓冲区下溢的风险。更详细的解释可以在这里找到。
libpollen提供了一些独立于模板化运行时可执行文件的功能。插件使用libtemplatizer进行代码重用。
插件
在计算机科学中,一个插件(或插件、插件、插件、附加组件或附加组件)是一个软件组件,它为现有的计算机程序添加特定的功能。当程序支持插件时,它允许定制。
输入插件从客户端读取URL编码和JSON输入。然后,这些值在脚本中使用'@'符号进行使用。可以使用'templatizer'标签选择输入插件。
动态链接器插件可以用来加载用特定编程语言编写的程序。该插件通过在“templatizer”元素上使用“lib”属性进行指定。模板可以使用“args”XML属性设置插件参数。
一个名为ld-exec.so的链接器可以用来在Linux上运行以shebang开头的二进制程序或文本脚本。
一些插件是完整的Web应用。使用变量名设置文本占位符变量,这些变量可以在XHTML模板占位符中使用。不同的网站可以在使用相同的Templatier应用插件的同时拥有不同的用户界面。
示例
以下是一个用Pollen编写的程序示例。它打印来自两个用不同语言编写的Pollen插件中的hello world。请注意,此示例以及其他Pollen程序的语法有意使它们与XML语法相似。
<!-- Copyright (C) 2023 Mateus de Lima Oliveira -->
<templatizer lib="../plugins/input/in_helloworld.so">
<templatizer lib="../plugins/input/helloworld-rs/target/release/libhelloworld_rs.so">
<templatizer lib="../plugins/net/headers.so">
<html>
<head>
<meta charset="UTF-8"/>
<title>Hello world pipeline</title>
</head>
<body>
<h1>Hello world pipeline</h1>
<p>Hello world Templatizer pipeline in multiple programming languages:</p>
<ul>
<li>C: <span>@</span></li>
<li>Rust: <span>@</span></li>
</ul>
<p>Have a nice day!</p>
<templatizer lib="../plugins/net/copyright.so">
<p>@</p>
</templatizer>
</body>
</html>
</templatizer>
</templatizer>
</templatizer>
更多测试和示例可以在源代码树的测试目录中找到。
从源代码编译
Pollen仅在Linux上进行了测试。
它需要
- sys/queue.h用于列表宏(大多数Linux发行版默认安装);
- libdl用于动态加载库(大多数Linux发行版默认安装);
- build-essential
- libexpat1-dev;
- flex和bison;
- libapr1-dev;
- libvirt-dev;
- liblmdb-dev;
- ldc;
- cargo;
- rustc;
- valgrind;
- llvm-dev.
root@debian:~# make dependencies
mateus@debian:~$ make
mateus@debian:~$ make test
root@debian:~# make install
Termux
使用以下命令为termux编译Pollen
mateus@debian:~$ make termux
root@debian:~# make install
调试
启用调试可以通过将DEBUG环境变量设置为"y"来实现
mateus@debian:~$ DEBUG=y make
开发路线图
以下是我的未来开发
- 将Quick转换为一系列守护进程
- 从Quick中删除autotools
- 将Quick与Pollen合并
- 修复错误
贡献
如果您喜欢这个项目,请考虑捐赠以帮助我进一步开发它。:)