我在FORTRAN中有一个数值库(我相信FORTRAN IV),我想将它转换为Python代码.我想要真正的源代码,我可以在任何Python虚拟机上导入--- Windows,MacOS-X,Linux,Android.我手动开始这样做,但是库中有大约1000个例程,所以这不是一个合理的解决方案.
我需要编写一个程序,将命令式代码转换为纯函数式.我并不担心I/O--我有一些解决方案 - 但我确实需要处理堆对象和局部变量.
我想这可以通过传递一个TheWorld带有每个函数调用的对象并返回,然后从那里进行优化,尝试从不使用它的函数中删除该参数等来完成.但是有没有一种已知的更好的方法呢?
compiler-construction functional-programming code-translation
有没有可以自动将这个python代码转换为PHP的软件转换器?
#!/usr/bin/python
import math
def calcNumEntropyBits(s):
if len(s) <= 0: return 0.0
symCount = {}
for c in s:
if c not in symCount: symCount[c] = 1
else: symCount[c] += 1
entropy = 0.0
for c,n in symCount.iteritems():
prob = n / float(len(s))
entropy += prob * (math.log(prob)/math.log(2))
if entropy >= 0.0: return 0.0
else: return -(entropy*len(s))
def testEntropy(s):
print "Bits of entropy in '%s' is %.2f" % (s, calcNumEntropyBits(s))
testEntropy('hello world')
testEntropy('bubba dubba')
testEntropy('aaaaaaaaaaa')
testEntropy('aaaaabaaaaa')
testEntropy('abcdefghijk')
Run Code Online (Sandbox Code Playgroud) 我被要求编写一个代码转换器,它将采用Python程序并生成一个C程序.你有什么想法我怎么能解决这个问题,甚至可能?
由于机密性原因,我可能无法在引脚点详细信息中进行描述,但这是方案.
具有流媒体应用程序的各种设备具有不同的api语言,尽管它们完成了同样的事情.因此,当您想为一个平台编写流媒体应用程序时,您必须从头开始,同时为其他平台复制相同的应用程序,即编写冗余逻辑.我想设计一个转换器,它使用一种语言编写代码,并为所有本地语言生成代码,类型为1对多,但不确定如何启动,并且无法在Internet上找到足够的引用.这样做甚至可行吗?目标语言包括javascript的变体,主要是java.
我想将一些C代码翻译成Python代码或字节码.有问题的C代码就是我所说的纯算法:独立于平台,没有I/O,只有算法和内存数据结构.
一个例子是正则表达式库.翻译工具将处理库源代码并生成功能相当的Python模块,该模块可以在沙盒环境中运行.
您可以推荐哪些具体的方法,工具和技术?
注意:Python C扩展或ctypes 不是一个选项,因为环境是沙箱.
另一个注意事项:看起来有一个C-to-Java-bytecode编译器,他们甚至将libjpeg编译为Java.Java字节码+ VM与CPython字节码+ VM有太大不同吗?
我想了解一个转换器是如何工作的.最好这样做是写一个课程.
从理论上讲,我一直在研究一些资源,以了解其工作原理.我理解以下内容:
从我的理解,我基本上需要写两个类:
将Lexical Analyzer文件的源代码作为输入(输入流).例如,以下代码:
if (someVar == 20) {
MessageBox("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)
然后Lexical Analyzer从中创建数据块:
[if]
[ ]
[(]
[someVar]
[ ]
[==]
[ ]
[20]
[)]
[ ]
[{]
[\n]
[\t]
[MessageBox]
[(]
["]
[Hello World!]
["]
[)]
[;]
[\n]
[\t]
[}]
Run Code Online (Sandbox Code Playgroud)
然后将其发送给Parser班级.
然后,Parser类将读取所有标记块(?)并指定每个标记(?)的含义.它将为其指定某种类型.因此,上述字符串的结果将被标识为:
[if] // Keyword
[ ] // Whitespace
[(] // L_Parenthesis
[someVar] // Identifier
[ ] // Whitespace
[==] // Operator
[ ] // …Run Code Online (Sandbox Code Playgroud) 我在CodeProject上发现了这篇文章:http: //www.codeproject.com/Articles/512956/NET-Shell-Extensions-Shell-Context-Menus
并且认为尝试一下会很好,但在F#中.所以我想出了以下代码:
open System
open System.IO
open System.Text
open System.Runtime.InteropServices
open System.Windows.Forms
open SharpShell
open SharpShell.Attributes
open SharpShell.SharpContextMenu
[<ComVisible(true)>]
[<COMServerAssociation(AssociationType.ClassOfExtension, ".txt")>]
type CountLinesExtension() =
inherit SharpContextMenu.SharpContextMenu()
let countLines =
let builder = new StringBuilder()
do
base.SelectedItemPaths |> Seq.iter (fun x -> builder.AppendLine(sprintf "%s - %d Lines" (Path.GetFileName(x)) (File.ReadAllLines(x).Length)) |> ignore )
MessageBox.Show(builder.ToString()) |> ignore
let createMenu =
let menu = new ContextMenuStrip()
let itemCountLines = new ToolStripMenuItem(Text = "Count Lines")
do
itemCountLines.Click.Add (fun _ -> countLines)
menu.Items.Add(itemCountLines) …Run Code Online (Sandbox Code Playgroud) 如何从gcc C代码构建AST(抽象语法树)以进行一些修改,比如将一些int变量转换为float,然后再将代码重新生成(生成)到C语法.
实际上,目前,我真正需要的唯一功能是从包含几行的ac程序中提取变量及其类型的表...我认为有一个简单的解析器就是这样做的.
我有一些变量,如:
int var_bss ;
float var_f_bss;
int var_data = 4;
float var_f_data = 5;
Run Code Online (Sandbox Code Playgroud)
功能:
int Foo(){
some local variables;
}
Run Code Online (Sandbox Code Playgroud)
代码位于单个c文件中.
我想向最终用户介绍所有变量,让他选择特定内存段中的源类型,例如.data中的int变量.然后用户可以将这些变量转换为浮点数.最后,我为用户生成相同的代码,但使用他选择的新变量类型.
最近,我有必要创建ANTLR语言语法,以实现编译器的目的(将一种脚本语言转换为另一种脚本语言)。在我看来,Google翻译在翻译自然语言方面做得很好。我们拥有各种各样的递归神经网络模型,LSTM和GPT-2,它们会生成语法正确的文本。
问题:是否有足够的模型来训练语法/代码示例组合,以便在给定任意示例源代码的情况下输出新的语法文件?
grammar machine-learning code-translation language-recognition transpiler
code-translation ×10
python ×4
c ×3
transpiler ×2
com ×1
f# ×1
fortran ×1
gcc ×1
grammar ×1
java ×1
php ×1
sandbox ×1
strongname ×1