0

我偶然发现了一些关于 PICK 编程的有趣文档:

http://www.d3ref.com/?token=flash.basic

它说 FlashBASIC 是 PICK 程序的编译版本,而不是解释版本,可以与 PICK 互操作。这很棒。我很好奇它是如何描述对象代码的:

将 Pick/BASIC 源代码转换为称为目标代码的二进制指令列表。

这个目标代码是否可以与其他语言互操作?还是仅限于 PICK & Universe 操作环境?换句话说,C 程序可以调用 FlashBASIC 程序吗?

这有助于定义 C 版本,但找不到任何明确的 FlashBasic 版本定义:

什么是 C 中的目标文件?

4

2 回答 2

1

You're asking a few different questions which I'll try to answer.

Here is an article I wrote that might help your understanding of FlashBASIC. In short, where traditional MV BASIC is compiled and then run by assembler, the Flash compiler is C and generates an object module that sits below the standard BASIC object in frame space. At runtime that code is then interpreted by a C runtime. For our purposes here, there is no C interface, this is just an internal mechanism for getting code to run faster.

Note from the above that this is Not related to the "What's an object file in C?" topic because object modules in D3 are stored in D3 frames, completely unrelated to common OS-level object modules.

Now about C calling Pick - in your case D3: You can use the CP library - the docs are in the same area as the link you cited. Rather than binding with the database itself, you can also use your code in a client/server mode with the MVSP library if you're using Managed C (.NET). Or you can use any common web service client mechanism in C and setup D3 as a web service server with a number of technologies including MVST, mv.NET, Java, or C/C++.

I know that response is rather vague but you're asking a question which has been discussed at-length in forums over a period of years. If you ask a more specific question you'll get a specific answer. Feel free to refine your query in a comment and we can focus the answer.

Also note that you tagged this question as "u2". If you are really using the U2 variant of MV/Pick (Universe or Unidata) then the reference to the D3 docs was misleading and none of the above applies, as they do this differently in U2 and there is no FlashBASIC there. I know, you're confused. Let's work it out...

于 2015-09-18T17:30:45.603 回答
0

是的,Flash BASIC 只是翻译成 C,被编译,生成的目标文件被动态加载和链接,然后从 Pick OS 运行。C 程序运行并与 BASIC 交互的特性当然是可能的,但我们没有实现该特性。

于 2021-02-21T17:10:37.483 回答