[Info-vax] Python for x86?
Arne Vajhøj
arne at vajhoej.dk
Wed Apr 19 20:27:15 EDT 2023
On 4/14/2023 7:22 PM, Arne Vajhøj wrote:
> On 4/14/2023 8:19 AM, Simon Clubley wrote:
>> - Python is an excellent way to add automation/scripting capabilities to
>> a wide range of applications.
>>
>> Try doing the following with Perl: :-)
>>
>> https://docs.blender.org/api/current/info_overview.html
>
> It is possible to embed Perl as well.
>
> I would say Perl and Python is similar in that regard.
>
> https://docs.python.org/3/extending/embedding.html
>
> https://perldoc.perl.org/perlembed
Of course JSR 223 is pretty cool in this regard.
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class EmbeddedScript {
public static void test(String language, String source) throws
ScriptException {
System.out.println(language + ":");
System.out.print(source);
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName(language);
se.eval(source);
}
public static void main(String[] args) throws ScriptException {
test("javascript", "for(i = 0; i < 3; i++) {\r\n" +
" print(\"Hi from JavaScript!\")\r\n" +
"}\r\n");
test("python", "for i in range(3):\r\n" +
" print(\"Hi from Python!\")\r\n");
test("ruby", "for i in 1..3 do\r\n" +
" puts 'Hi from Ruby!'\r\n" +
"end\r\n");
test("php", "<?php\r\n" +
"for($i = 0; $i < 3; $i++) {\r\n" +
" echo \"Hi from PHP!\\r\\n\";\r\n" +
"}\r\n" +
"?>\r\n");
test("groovy", "for(i in 1..3) {\r\n" +
" println \"Hi from Groovy!\"\r\n" +
"}\r\n");
test("perl", "for(1..3) {\r\n" +
" print(\"Hi from Perl!\\n\");\r\n" +
"}\r\n");
test("lua", "for i = 1,3\r\n" +
"do\r\n" +
" print(\"Hi from Lua!\")\r\n" +
"end\r\n");
test("Lisp", "(dotimes (n 3)\r\n" +
" (format t \"Hi from Lisp!~%\"))\r\n");
test("tcl", "for {set i 0} {$i < 3} {incr i} {\r\n" +
" puts \"Hi from Tcl!\"\r\n" +
"}\r\n");
}
}
outputs:
javascript:
for(i = 0; i < 3; i++) {
print("Hi from JavaScript!")
}
Hi from JavaScript!
Hi from JavaScript!
Hi from JavaScript!
python:
for i in range(3):
print("Hi from Python!")
Hi from Python!
Hi from Python!
Hi from Python!
ruby:
for i in 1..3 do
puts 'Hi from Ruby!'
end
Hi from Ruby!
Hi from Ruby!
Hi from Ruby!
php:
<?php
for($i = 0; $i < 3; $i++) {
echo "Hi from PHP!\r\n";
}
?>
Hi from PHP!
Hi from PHP!
Hi from PHP!
groovy:
for(i in 1..3) {
println "Hi from Groovy!"
}
Hi from Groovy!
Hi from Groovy!
Hi from Groovy!
perl:
for(1..3) {
print("Hi from Perl!\n");
}
Hi from Perl!
Hi from Perl!
Hi from Perl!
lua:
for i = 1,3
do
print("Hi from Lua!")
end
Hi from Lua!
Hi from Lua!
Hi from Lua!
Lisp:
(dotimes (n 3)
(format t "Hi from Lisp!~%"))
Hi from Lisp!
Hi from Lisp!
Hi from Lisp!
tcl:
for {set i 0} {$i < 3} {incr i} {
puts "Hi from Tcl!"
}
Hi from Tcl!
Hi from Tcl!
Hi from Tcl!
PS: You need ABCL, GHroovy, JACL, JRuby, LuaJ, Perlito5 and Quercus
in classpath.
PPS: Some of the script code may not be optimal - I am not
familiar with all the languages.
PPPS: everything is pure Java and should run fine on VMS Itanium
and in the future VMS x86-64 (Java 1.5 on VMS Alpha is too old
for some of these).
Arne
More information about the Info-vax
mailing list