Zexpression Syntax Compiler + 인터프리터, 스크립트 엔진 커널
기술 시스템 설명 :
- 컴파일의 기술 시스템에서 텍스트 코드를 처리하기 전에 전처리가 필요합니다. 우리가 자주 이야기하는 구문 및 구문 설탕은 모든 전처리 프로그램입니다.
- 어휘 방법 : 어휘 방법은 텍스트 키워드, 숫자 및 기호를 분류하고 마지막으로 어휘 트리를 형성하고 순차적 처리의 원리를 엄격하게 따르는 것입니다.
- 성명서 : 전처리 코드에서 선언 부분을 선언 트리라고합니다. 어휘 전처리는 단순화 된 방법이기 때문에 선언 트리는 어휘 순차적 사전 처리에 의존합니다.
- 구문 : 선언 전처리 후 코드 표현식의 단일 라인 논리 작업을 처리합니다. 이 단계를 구문이라고합니다. Zexpression Syntax 컴파일러로 간주됩니다. 그것은 내가 한 번 쓴 컴파일러에서 의도적으로 벗겨진 솔루션입니다. 독립적으로 배포 및 사용할 수 있으며 디지털 전처리, 그래픽 이미지, 과학 컴퓨팅 및 기타 필드에 실제로 사용될 수 있으며 자신을 개선하는 법을 배우는 수단으로도 사용할 수 있습니다.
핵심 아이디어
- Zexpression 구현은 P2P 복잡성의 원칙을 채택하며 컴파일러 문제를 해결하기 위해 작성됩니다. 복잡성은 일반 프로그램보다 훨씬 높습니다. 최종 문제를 해결하기 때문에 코드의 이름 지정 및 힙 구조에는 취약점이 없으므로 성숙한 구문 통역 솔루션입니다.
zexpression의 특징
- 완전한 단일 단계 분무 작업
- 완전한 기호 우선 순위 사후 처리
- 오류가 발생하는 경우 문자 그대로 오류 및 피드백을 전처리 할 수 있습니다.
- 부동 소수점 및 정수를 식별 할 수있는 자연 번호 쓰기 방법
- 지원 기능 호출
- 사용자 정의 스크립트 구문을 지원합니다
- 역 폴란드 2.0 기호 우선 순위 처리
- 휴대 전화의 Android 및 Apple 모델을 지원합니다
- 완전한 기능 데모, 완전한 성능 및 구문 분석 정확도 평가 프레임 워크
- 컴파일 후, 원자화 된 OP 코드를 형성 할 수 있으며, 이는 CPU 유형을 제한하지 않고 스트림을 통해 고속으로로드하고 고속으로 실행할 수 있습니다.
- OP 코드 프레임 워크는 ARMV7 ARMX64 X64 X86 및 기타 플랫폼의 기계 코드로 쉽게 디코딩 할 수 있습니다.
- 매트릭스 및 벡터 발현지지
플랫폼 지원, Delphi 10.3 업데이트 2 및 FPC 3.0.4로 테스트
- Windows : Delphi-CrossSocket (C/S OK), Delphi-DioCP (C/S OK), Delphi-ICS (C/S OK), Delphi-Indy (C/S OK), Delphi+FPC Synapse (C/S OK)
- Android : Indy (C/S OK), CrossSocket (클라이언트 만)
- iOS 장치 : Indy (C/S OK), CrossSocket (클라이언트 만)
- iOS 시뮬라 : 해당 없음
- OSX : Indy (C/S OK), ICS (테스트되지 않음), CrossSocket (C/S OK)
- ubuntu16.04 x64 서버 : Indy (C/s OK), CrossSocket (C/S OK)
- ubuntu18.04 x86+x64 데스크탑 : 만 FPC3.0.4 Synapse (c/s ok)
- ubuntu18.04 x86+x64 서버 : 만 FPC3.0.4 Synapse (c/s ok)
- UBUNTU18.04 ARM32+ARM NEON SERVER : FPC3.0.4 SYNAPSE (C/S OK) 만
- UBUNTU18.04 ARM32+ARM NEON 데스크탑 : 만 FPC3.0.4 만 컴파일 확인, 실행 중입니다.
- UBUNTU16.04 MATE ARM32 데스크탑 : FPC3.0.4 만 컴파일 확인, 테스트가 통과되었습니다
- Raspberry Pi 3 Debian Linux ARMV7 데스크탑, FPC 3.0.4 만, 테스트가 통과되었습니다.
- Wince (Arm Eatbi Hard Flat), Windows 10 IoT, FPC 3.3.1 만 테스트가 통과되었습니다.
CPU 아키텍처 지원, Delphi 10.3 업데이트 2 및 FPC 3.0.4로 테스트
- MIPS (FPC-Little Endian), 소프트 플로트, QEMU의 테스트 패스
- 인텔 X86 (FPC-X86), 소프트 플로트
- Intel X86 (Delphi+FPC), 하드 플로트, 80386, Pentium, Pentium2, Pentium3, Pentium4, Pentiumm, Corei, Coreavx, Coreavx2
- 인텔 X64 (FPC-X86_64), 소프트 플로트
- 인텔 X64 (Delphi+FPC), 하드 플로트, Athlon64, Corei, Coreavx, Coreavx2
- ARM (FPC-ARM32-ABI, 소프트 플로트) : ARMV3, ARMV4, ARMV4T, ARMV5, ARMV5T, ARMV5TE, ARMV5TEJ
- ARM (FPC-ARM32-ABI, 하드 플로트) : ARMV6, ARMV6K, ARMV6T2, ARMV6Z, ARMV6M, ARMV7, ARMV7A, ARMV7R, ARMV7M, ARMV7EM
- ARM (FPC-ARM64-ABI, 하드 플로트) : ARMV8, AARCH64
로그 업데이트
2021-9-22
- Numberbase 라이브러리에는 Zexpression 드라이버가 내장되어 있습니다. 자세한 내용은 Zcloud의 네트워크 변수 서비스 https://github.com/passbyyou888/zcloud를 참조하십시오.
- Opcache가 초기화되지 않은 문제를 수정했습니다
- Opruntime을 최적화하십시오
- 델파이 11을 지원합니다
- IoT 장치 용 FPC를 지원합니다
2021-7
- 문자 표현 -2.0E-3과 같은 고정 인식 문제
- 사례 민감도와 Win/Linux와 호환되지 않아 OpCode.PAS 라이브러리를 수정했습니다.
2020-3
- 등록 기능에 선언 정보가 추가되었습니다
- 사전 기능 기호 -func (1+1) 수정
- 함수 후 기호 함수 (1+1) -1을 수정했습니다
2019-7
매트릭스 표현 지원
// 构建3*3的variant矩阵,使用c语法表达式
procedure MatrixExp ;
var
m: TExpressionValueMatrix;
begin
DoStatus( ' ' );
m := EvaluateExpressionMatrix( 3 , 3 ,
' "hello"+"-baby"/*备注:字符串联合*/,true,false, ' +
' 1+1,2+2,3+3, ' +
' 4*4,4*5,4*6 ' , tsC);
DoStatus(m);
end ;
// 构建variant向量数组,使用pascal语法表达式
procedure MatrixVec ;
var
v: TExpressionValueVector;
begin
DoStatus( ' ' );
v := EvaluateExpressionVector( ' 0.1*(0.1+max(0.15,0.11)){备注内容},1,2,3,4,5,6,7,8,9 ' , tsPascal);
DoStatus(v);
end ; 2019-4
- TextParsing Notes 인코딩 후 버그를 수정했습니다
- opcode 콜백 유형 추가 (Zai 도구 체인의 스크립트 지원 참조)
2018-9-29
- 새로운 기술 : 추가 된 Toct Probe Technology : ANT 프로그램의 프로그래밍 복잡성을 50%줄일 수 있습니다.
- 새로운 기술 : 문자 별 텍스트 문자 크롤링 성능은 %500을 향상시킵니다
- 다중 플랫폼 : 여러 IoT 시스템 및 다중 프로세서 하드웨어 아키텍처를 완전히 지원합니다.
- 새로운 데모 : 익명 함수를 사용하지 않는 새로운 FPC 데모가 추가되었습니다.
- 프로세스 : FPC를 기반으로 한 IoT 지원과 호환됩니다. 기본에서 고급 대규모 통합 이름 지정에 이르기까지 조정 및 이름 지정입니다. 이 조정은 많은 프로젝트의 코드 세부 사항에 영향을 미칩니다.
// 本项目中的回调分为3种
// call: 直接指针回调,fpc+delphi有效
// method: 方法回调,会继承一个方法宿主的地址,fpc+delphi有效
// proc: 匿名过程回调,只有delphi有效
// 如果本项调整对于改造现有工程有一定的工作量,请使用字符串批量处理工具
// 在任何有回调重载的地方,方法与函数,均需要在后缀曾加回调类型首字母说明
// 如
RunOp 变更为 RunOpP() // 后缀加P表示匿名类型回调
RunOp 变更为 RunOpM() // 后缀加M表示方法类型的回调
RunOp 变更为 RunOpC() // 后缀加C表示指针类型的回调
2018-7-6
- 기본 라이브러리의 이름 지정 규칙을 크게 수정하십시오
- FPC/86/64 플랫폼을 지원하며 모든 기본 라이브러리는 Linux에서 문제없는 컴파일 및 작동을 지원합니다.
- FPC 컴파일러에 대한 전체 지원 3.1.1
- 크기와 엔디 언 지원이 추가되었습니다
- 32 비트 FPC 컴파일러에 Int64 사용을 거부하지 않는 문제를 수정했습니다.
- FPC 컴파일러 일 때 Linux에서 실행되는 문자열의 예외 문제를 수정했습니다.
- Pascal Precomcompilation 도구가 추가되어 Pascal Code를 C 스타일의 모든 통합 케이스로 표준화하여 Linux Case-Sensistive Files Mechnism과 완전히 호환됩니다.
2018-4-12
- 커널에서 메모리 외부 버그를 수정했습니다.이 버그의 증상은 이유없이 접근 할 수 없으며 정상 디버깅을 통해 제거하기가 어렵다는 것입니다. 이것은 메모리 외부로 인한 버그입니다.
2018-3-1
- tpascalstring 커널에 퍼지 문자열 비교 함수 (Smithwaterman)를 추가하면 최적화 및 테스트가 완료되었습니다.
- 이 알고리즘은 생물학적 유전자 공학 분야 인 Smith-Waterman의 Wikipedia 주소에 속합니다. https://en.wikipedia.org/wiki/smith%E2%80%93waterman_algorithm
2018-2-28
- AMU QQ345148965 덕분에 C 이스케이프 문자 BUF를 수정하십시오
- COOPSET로 Charpos의 매개 변수 이름 지정을 변경하고 Const 수정자를 추가하십시오.
2018-2-26
- 릴리스 모드를 사용하여 컴파일 할 수없는 문제를 수정했습니다.
- zexpression에서 잘못된 절단 및 세분화 문제를 수정했습니다.
- 문자 프로브의 절단 성능을 약간 향상시킵니다 (Splittoken, Splitchar)
- 기본 레이어는 원자 잠금 장치를 다시 작성하기 때문에 많은 기록 선언 전에 포장 된 수정자가 추가됩니다.
2018-2-25
- 사용자 정의 표현 기호 지원이 추가되었습니다
- 사용자 정의 표현 기호의 새로운 데모
2018-2-25
- 중첩 된 기능 매개 변수가 인터페이스를 올바르게 확장 할 수없는 문제를 해결했습니다.
- 분석 엔진의 디지털 프로브가 16 진 자연 수와 기능을 인식 할 수없는 문제를 해결했습니다.
- 가변 선언, 정적 멀티플렉싱, 다이나믹 멀티플렉싱, 총 3 개의 트릴 로시를 포함하여 할당을위한 새로운 데모 예제를 추가했습니다. 예제 데모에서 직접 연구하십시오.
- 문자열 문제와 숫자 일치 조합 문제를 수정했습니다
- C 코드 스타일 0x16 자석 구문을 지원합니다
2018-2-6
- Parser 커널을 다시 작성하고 기능 호출을 지원하며 지금부터 Zexpression은 지속적으로 업데이트됩니다.
Zexpression 사용에 대한 궁금한 점이 있으면 Mutual Aid QQ Group 490269542를 추가하십시오. 저자에게 직접 연락하지 마십시오.
by.qq600585 2017-6