本帖最后由 6767 于 2020-1-18 23:11 编辑
本文目的是分享给大家,怎么样制造一款适合x国人学习的语言:)
开个玩笑,我们的目标还是要学习人家的长处嘛。
从网络上下到了安装包,超小的解释器,目前可用迅雷下载到,原始链接也许404;
htt(删除派大星干扰)p://www.dongsh(删除派大星干扰)ouke.com/download/u(删除派大星干扰)lang-0.2.2.exe
然后使用pyinstaller 的克星pyinstxtractor.py提取出子文件(pyinstxtractor.py要修一下3.7文件头的bug,第315行附近);
with open(destName + '.pyc', 'wb') as pycFile:
pycFile.write(pycHeader) # Write pyc magic
pycFile.write(b'\0' * 4) # Write timestamp
#print(self.pyver)
if self.pyver >= 33:
pycFile.write(b'\0' * 4) # Size parameter added in Python 3.3
if self.pyver >= 37:
pycFile.write(b'\0' * 4) # Size parameter added in Python 3.7
pycFile.write(data)
关键文件在PYZ-00.pyz_extracted目录下的ulang系列文件;
主文件内容如下:
用内置的专码器转换了一下pyinstaller提取器脚本的源代码,可以看到下面类似C风格的语言特性:
func main() {
if (len(sys.argv) < 2) {
println(' Usage: pyinstxtractor.py <filename>')
} else {
arch = PyInstArchive(sys.argv[1])
if arch.open() {
if arch.checkFile() {
if arch.getCArchiveInfo() {
arch.parseTOC()
arch.extractFiles()
arch.close()
println(' Successfully extracted pyinstaller archive: {0}'.format(sys.argv[1]))
println('')
println('You can now use a python decompiler on the pyc files within the extracted directory')
return
}
}
arch.close()
}
}
}
if (__name__ == '__main__') {
main()
}
主要的源文件:
ulang.zip
(33.52 KB, 下载次数: 80)
,
大家可以学习学习看看,是个不错的编译原理大作业,代码质量还是很高的{:1_918:}
对于其语言特性不作评价。
如果侵犯了什么版权的话,请版主删除本文。
|