Presentation Webinar For RAD Basic

2y ago
4 Views
2 Downloads
981.91 KB
26 Pages
Last View : 1m ago
Last Download : 3m ago
Upload by : Julius Prosser
Transcription

Presentationwebinar forRAD BasicKickstarter campaign: http://bit.ly/radbasic

HELLO!I am Carles RoyanLead developer of RAD BasicSoftware Engineer for about 15 yearsWorked in compilers in universityDid some work with ANTLR and hibernate (HQL parser).You can find me at @radbasic2

Outline Why?RAD Basic componentsArchitectureMain goal: compatibilityCurrent statusLive demo!AMA (Ask Me Anything)3

Why? How it started? In 1990s, I learned to code in GW-BASIC, QBasic and Visual Basic In 2002, angry for VB6 abandoned by Microsoft In 2003 created my first compiler (transpiler from pseudocode to java). In 2008-2016 VB6 compatible compiler came up as a good project, butlack of confidence for do it.4

Why? Time line Beginning 2018: made some research and found none project/productcompatible with VB6. Mid 2018: start to do some code and testing if it could be made. 2018-2021: developing RAD Basic in free time. 2021: For achieving 100% compatibility, it is needed change from freetime work to full time work. So this is the reason of this Kickstarter.5

Why matters? In 2021 there is ton of maintained VB6 applications. We need a modernized IDE, Visual Basic 6 IDE is old and it don't havemodern features as refactor operations. Visual Basic 6 Runtime (MSVBM60.DLL, OCXs, etc.) have minimumsupport from Microsoft. No new features. 64-bit: RAD Basic allows create and use EXE and OCX of both 32/64 bit.6

About 100% Compatibility“The Pareto Principle (80/20 rule):20% of efforts bring80% of results, and theother 80% of effortsbring only 20% ofresults.7

RAD Basic componentsIDECompilerNew and modern IDE with syntax highlighting, codecompletion, refactoring, New compiler with 32/64 bit support,documented for use by users (no obscure flagsas c2.exe of VB6)8

RAD Basic componentsRuntime librariesReimplemented VB6 runtime libraries (compatible atsource code level). So, it could be maintained, fixedbugs and add new features.Tooling and support utilitiesCLANG/LLVM, RBMake for C compiling, comigen forgenerating C code for wrapper COM classes, ObjectExplorer (COM and RAD Basic symbols), SOJO lib, 9

Architecture: build a CompilerModern compiler architectureImage from: https://en.wikipedia.orgBuild and walk an AST (Abstract Syntax Tree)10

Architecture: RBC CompilerVB6grammardefinitionAutomated lexical and syntaxanalyzerC# classes for lexicaland syntax analyzerRAD Basic Compilersource codeSemantic analyzer and codegeneratorRBC implements frontend usingANTLR classes from grammardefinition.Delegates backend (optimization ILand generation of native code) toCLANG/LLVM.RBC.exeRBC generates C code from VB6.Runtime Library is written in C too.The output exe is generated from ccode by CLANG (LLVM C compiler)11

Architecture: Compiler process1VBPFRMBASCLSCTLRBC.exeRBMAKE.exe*.h files*.c filesrbmake.jsonCLANGYour exe2*.h files*.c filesrbmake.jsonRB Runtimelibraries in CRTL Libs Static linkedGenerated COMinterfaces in C12

Architecture: Languages RBC Compiler in C#/.NET (one of the ANTLR lang ouput) For maintainability, IDE and toolchain in C#/.NET too Runtime Library in C (portability, low level) Generated executables are native: No .NET dependencies.13

Architecture: Why not in VB6? It could be great to have RAD Basic as self-hosting compiler. But: Visual Basic is great for graphical apps. But lack support for command line. There are no tools as ANTLR for automatize Lexical and Syntactical analyzer. Itcould be written by hand, but it slows down development- IDE and language are pretty old (hey! We are here for ) so it will slow downdevelopment. Maybe rewritten in future.14

Architecture: COM/OCX support RAD Basic supports COM (OLE/ActiveX) and COM is a first citizen. Visual Basic reliesheavily in COM/OCX. RAD Basic toolchain (comigen.exe) do the plumbing for creating COM interface with thehelp of RBCOMLIB. It generates header files and utility C file for being called from application generatedcode. All is done with no user interaction, as in VB6. So using OCX/COM/OLE is as easy and transparent as it is in Visual Basic.15

Architecture: Why not COM based? RAD Basic is designed with cross platform in mind. COM technology is very hard to bemade in a portable way. Easier for user to not have external dependencies. Prefer to static linked and avoid dllhell. If it is needed, it could have a COM wrapper interface for plain static lib runtime. You could use COM and RAD Basic static runtime library in the same project with noproblem!16

Architecture: cross platform designRBC compiles using this platform agnostic headerWin 32 implementation iswrapped in static lib17

Architecture: cross platform designRBC.execompilingCurrent implementationWin32/Win64RB RTLheaders*.h files*.c filesrbmake.json*.obj filesFuture implementationLinuxlinkingFuture implementationmacOSFinal generatedexe fileThere is one header as API and there will be n implementationsfor each platform. So, it could be swapped in compile time.18

Architecture: Three layer arch19

Architecture: SOJO library32-bit OCX64-bit appSOJO library: allows 32bit OCX run inside 64-bitapplications.It could be integrationproblems, so it have tobe used as a workaround20

Main goal: compatibility RAD Basic is focused on compatibility. So, there won’t be new features or languageenhancements. RAD Basic has no conversions or migrations. RAD Basic allows easy “transition” from VB. It works with native files, so you could goback and forth between environments freely. RAD Basic follow Visual Basic language reference. But not only this, it behaves some wayas VB6 does, implementing same tricks and oddities.21

Main goal: compatibilityExtended properties as platform (32-bit/64-bit) arestored in a separate file, for preserve compatibilitywith VB6 file format22

True current status (not as good) There is support for using OCX, although it has to be improved (it fails with coClasses withmore than one interface, and sometimes needs to tweak the output code) ThanksOleView.exe!!! At this moment only compiles exe files. Working in OCX generator: OCX projects could beloaded in IDE but compiling fails. IDE with code completion deactivated. Working in LSP (Language Server protocol)implementation. There is a solid foundation, but there is a lot of work to do for reaching 100% compatibility.23

True current status (the good) It has support for basic flow structures (IF, WHILE), method calls, variable declarationand some basic math operation. Core features are developed and RBC (RAD Basic Compiler) could compile some smallapplication test (calculator, ADO navigating through database, simple text editor, ). There is a solid foundation, well designed architecture and there are solved manychallenges as: visual forms designer, (partial) COM support, future cross platform, 24

25

THANKS!AMA time: Any questions?You can find me at: Twitter: @radbasic https://www.facebook.com/radbasic info@radbasic.devThanks to www.slidescarnival.com for this slide template26

RAD Basic supports COM (OLE/ActiveX) and COM is a first citizen. Visual Basic relies heavily in COM/OCX. RAD Basic toolchain (comigen.exe) do the plumbing for creating COM interface with the help of RBCOMLIB. It generates header files and utility

Related Documents:

Angular Motion A. 17 rad/s2 B. 14 rad/s2 C. 20 rad/s2 D. 23 rad/s2 E. 13 rad/s2 qAt t 0, a wheel rotating about a fixed axis at a constant angular acceleration has an angular velocity of 2.0 rad/s. Two seconds later it has turned through 5.0 complete revolutions. Find the angular acceleration of this wheel? A.17 rad/s2 B.14 rad/s2 C.20 rad/s2 .

DB-RAD 500 100-500 FtLb or DB-RAD 675 135-675 Nm DB-RAD 1000 250-1000 FtLb or DB-RAD 1350 340-1350 Nm DB-RAD 1500 375-1500 FtLb or DB-RAD 2000 510-2000 Nm Table 1.2.1: Torque Ranges 1.2.2 Battery Specifications Ensure that all Battery Specifications are followed when utilizing the Digital B-RAD Tool System. Battery Output

emit x: p90 511.6 nm rad, xn: p90 8.5%, xpn: p90 8.3%, growth projected emit x 3.6 nm rad old 1.9 nm rad emit y: p90 5.5 nm rad, yn: p90 7.9%, ypn: p90 6.5%, growth projected emit y 0.4 nm rad old 0.3 nm rad with single bunch wakes, 10% rms jitter: emit x: p90 511.6 nm rad, xn: p90 8.8%, xpn: p90 9.3% .

Bruksanvisning för bilstereo . Bruksanvisning for bilstereo . Instrukcja obsługi samochodowego odtwarzacza stereo . Operating Instructions for Car Stereo . 610-104 . SV . Bruksanvisning i original

Rad-Tolerant / Rad-Hard Integrated Circuits 3 Rad-Tolerant Concept Microchip’s Rad-Tolerant devices are based on com

Summer 2018 SEVP InFocus Webinar—Script . 1 . Summer 2018 SEVP InFocus Webinar . Aug. 16, 2018 . Webinar Script . Slide 1: Pre-webinar Title Slide [Adobe Connect room opens approximately 15 minutes prior to webinar. Slide 1

3. Webinar 3 - Evaluation questions and indicators 4. Webinar 4 -Experimental impact evaluation 5. Webinar 5 -Non experimental impact evaluation 6. Webinar 6 - Sample size and power calculations 7. Webinar 7 - Timeline and budget 8. Webinar 8 - Rapid-fire presentations and closing remarks For all webinars except webinar 8, a learning

Winter 2018 SEVP InFocus Webinar Dec. 12, 2018 Webinar Script Slide 1: Pre-webinar Title Slide [Adobe Connect room opens approximately 15 minutes prior to webinar. Slide 1 displays until the start of the webinar at 2 p.m. EST.] Slide 2: Title Slide ALEXIS: Hello everyone! I'm Alexis Gioia, and I am the field representative for .