是Fortran,Cobol,Basic和Forth高级编程语言吗?
如果没有,第一个高级编程语言在哪里?
哪个是第一个面向对象的语言?
我正在寻找一种能够在单精度和双精度之间进行转换的方法.一个例子是划分2个整数并获得浮动结果.怎么可能?
我愿意使用交互式语言来测试遗留项目中的一些C代码.我知道一点点,但我还没有在现实世界的项目中使用它.我现在正在看pForth.
使用交互式Forth解释器来测试C程序中某些函数的行为是否合理?这个C代码有很多结构,指向结构的指针,句柄和C中的其他常见结构.
我想我必须编写一些胶水代码来处理参数传递,并且可能在Forth方面进行一些结构分配.我想要有这方面经验的人的估计.这值得么?
我可以在一个if语句中执行此操作,还是应该创建一个帮助器布尔变量?这是我到目前为止的代码.顺便说一下,IOX@是从用户那里获得输入.
: var
compile: VARIABLE
complile: ;
: lock
compile: var realPass$
compile: realPass$ "password" !
compile: ." Enter Password: "
compile: var pass$
compile: IOX@ pass$ !
compile: var match
compile: realPass$=pass$ match ! Unknown token: realPass$=pass$
Run Code Online (Sandbox Code Playgroud) 当返回堆栈发挥作用时,堆栈注释应该是什么样的?
: FOO ( d2 d1 tos -- sum flag )
... ;
Run Code Online (Sandbox Code Playgroud)
这个词需要5个单元格并返回2个单元格,但是当使用返回堆栈时,括号之间会是什么?例如,堆栈注释如何查找:
: BAZ ( d2 d1 tos -- d )
BASE @ >R >R ( d2 d1 )
2SWAP D- ( d )
R> DUP
R@ BAR
R> BONK ;
Run Code Online (Sandbox Code Playgroud) 我知道variable test 5 cells allot不能保证分配一个连续的内存块,同时create test 1 , 2 , 3 , 4 , 5 ,肯定会创建一个连续的内存块.
variable 被定义为 : variable create 0 , ;
是否有allot更多的单元格变量不能保证连续扩展内存块,因为create每个单词只能调用一次?
例:
create test 1 , 2 ,
test 3 , 4 , 5 , <<<<这不一定会连续扩展阵列,对吗?
我的假设是否正确?
第8个使用命名空间而不是词汇表.每个命名空间都有自己的整数表示.
ok> ns:a . cr ns:n . cr
4
2
Run Code Online (Sandbox Code Playgroud)
因此,2表示数字命名空间,4表示数组.
我想构建一个包含命名空间的数组,然后我可以将它放在TOS(堆栈顶部).
但是,如果我只写这个
ok> [ ns:a , ns:n ]
Exception: invalid JSON array: at line 1 char 3 in ....: cr (G:;;; +000004c2)
Exception: can't find: :a: at line 1 char 6 in (null): cr (G:??? +00000029)
Exception: can't find: ,: at line 1 char 8 in (null): cr (G:??? +00000029)
Exception: can't find: ]: at line 1 char 15 in (null): n (G:??? +00000029)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用递归定义来实现Hofstadter的Q序列:
Q(1) = 1
Q(2) = 1
Q(n) = Q(n - Q(n-2)) + Q(n - Q(n-1)) for n > 2
Run Code Online (Sandbox Code Playgroud)
我得到的错误结果n > 3。这是我到目前为止的内容:
: Q recursive
dup 3 <
if
drop 1
else
dup dup 2dup 2 - Q - Q -rot 1- Q - Q +
then ;
Run Code Online (Sandbox Code Playgroud)
在线尝试: http : //ideone.com/PmnJRO(编辑:现在具有固定,正确的实现)
我认为这是行不通的,因为每次调用Qwhere n大于之后,都会向堆栈中添加值2,从而使-rot行不通。
是否有一个简单的调整即可完成这项工作?还是我需要使用其他方法,也许将变量用于n?
OEIS:A005185
forth ×10
gforth ×2
8th ×1
basic ×1
fortran ×1
high-level ×1
interactive ×1
ip ×1
math ×1
networking ×1
oeis ×1
recursion ×1
sequence ×1
skia ×1
sockets ×1
string ×1
terminology ×1
testing ×1