addx/multi-lang like .net:
10.2: 12.11:
. the addx system needs to be like
Microsoft's ".NET" such that it lets us
command addx with a variety of languages
-- adda would just be the default language .
. a new language being ported to addx
would provide a compiler that emits
addm's high-level code (HLC)
that is similar to .NET's assemblies .
Showing posts with label dotNET. Show all posts
Showing posts with label dotNET. Show all posts
2013-12-11
2013-12-04
.NET Gadgeteer
10.22: news.adds/openware/.NET Gadgeteer:
. the .NET Gadgeteer
zdnet:
. the .NET Gadgeteer
was created by researchers at Microsoft. components can be bought here .
as an internal prototyping tool,
but because of external interest,
particularly from educators and hobbyists,
MS turned it into open source software
which now has a vibrant hardware ecosystem
from multiple manufacturers.
The platform is built on the .NET Micro Framework,
which allows small devices to be
programmed in the C# language
and make use of Visual Studio's developer tools .
zdnet:
. it is praised for being simple to build and code,
and for offering processors clocked at
several times the speed of those on
the vast majority of Arduino boards.
However Gadgeteer modules also cost more
compared to modules for the similar
Grove prototype system.
2012-06-10
microsoft's changes for an insecure internet
5.18: news.cyb/dev.net/silverlight killed by html5:
subodhnpushpak 2011:
programming the browser with ironpython
-- or any other .net language --
instead of javascript .
6.10: why:
. the .NET system was designed for competing with java;
the cool idea at that time was mobile code;
but since internet security issues have gotten so thick,
the cool idea now is either minimizing code installs
by using web services with an html interface,
or controlling app quality
with something like Apple's App Store .
. now that html5 offers a multi-media experience,
the .NET and SilverLight plug-in's
are being discouraged as unnecessary installs .
. some apps may seem slow in a browser,
and those will need native code
that should be policed by an App Store .
. to replace .NET's multi-lang feature,
here's how your favorite languages
can be turned into javascript:
# for Python code:
. use Pyjamas, a port of Google Web Toolkit.
# for C, C++, Objective-C:
. use the Emscripten LLVM-to-JavaScript compiler
(eg, if your translator emits Objective-C,
then it can be converted to LLVM byte code,
which can finally be converted to JavaScript ).
. given the move away from mobile code,
Microsoft has evolved from .NET
and its new language C#,
back to a popular language, C++
with Component Extensions, C++/CX .
. its syntax borrows from C++/CLI
but targets native instead of managed code.
. Apple went through such a phase also
when it dropped their new lang, Dylan,
for the popular lang, C,
with oop extensions, Objective-C .
. the .NET developer framework was part of
WPF (Win' Presentation Foundation),
and Silverlight was a .NET-powered flash competitor;
the new platform using c++/CX
is called WinRT (Win' Run Time).
subodhnpushpak 2011:
Microsoft Silverlight is an application framework. the cool thing about it was
for writing and running rich Internet applications,
with features and purposes similar to those of Adobe Flash.
. it's being replaced by html5 .
programming the browser with ironpython
-- or any other .net language --
instead of javascript .
6.10: why:
. the .NET system was designed for competing with java;
the cool idea at that time was mobile code;
but since internet security issues have gotten so thick,
the cool idea now is either minimizing code installs
by using web services with an html interface,
or controlling app quality
with something like Apple's App Store .
. now that html5 offers a multi-media experience,
the .NET and SilverLight plug-in's
are being discouraged as unnecessary installs .
. some apps may seem slow in a browser,
and those will need native code
that should be policed by an App Store .
. to replace .NET's multi-lang feature,
here's how your favorite languages
can be turned into javascript:
# for Python code:
. use Pyjamas, a port of Google Web Toolkit.
# for C, C++, Objective-C:
. use the Emscripten LLVM-to-JavaScript compiler
(eg, if your translator emits Objective-C,
then it can be converted to LLVM byte code,
which can finally be converted to JavaScript ).
. given the move away from mobile code,
Microsoft has evolved from .NET
and its new language C#,
back to a popular language, C++
with Component Extensions, C++/CX .
. its syntax borrows from C++/CLI
but targets native instead of managed code.
. Apple went through such a phase also
when it dropped their new lang, Dylan,
for the popular lang, C,
with oop extensions, Objective-C .
. the .NET developer framework was part of
WPF (Win' Presentation Foundation),
and Silverlight was a .NET-powered flash competitor;
the new platform using c++/CX
is called WinRT (Win' Run Time).
Labels:
architecture,
cloud computing,
dev.net,
dotNET,
security,
soa
2010-03-31
llvm and .NET or lisp
3.20: addx/llvm and .NET or lisp:
. how did llvm fit in with .net?
the .net was an improvement over bytecode;
it had a binary format of high-level code
-- call it wordcode --
and any language could compile to that wordcode .
. there's security in the wordcode,
since it's easy to verify it's not malware,
then a platform-specific runtime can
translate wordcode into an exec.file .
. llvm presents itself as the universal asm.code
(source code of a machine instruction set)
so one quick way to roll a wordcode compiler
is to compile wordcode to asm.code .
. then the llvm for that platform
will do all the heavy lifting of
jit-compiling and dynamic morphing
that keeps the asm.code mirrored in
the most efficient version of native code
for the current circumstances .
. there need be no practical difference between
word.code and the etrees of lisp
and perhaps that's why Stallman would
downplay .net as a Microsoft false freebee .
. what we really need from .net
is something more lisp-like
where the only constant to the std
is that etrees describe the conventions
of the current package .
. what we really need from lisp
is the same binary std for word.code
that .net calls assemblies .
. at the moment lisp's std is text-based
not binary -- xml is the same thing:
people should be communicating with that
only as a last resort,
when no binary convention has been agreed upon .
3.23:
. Mono from SVN is now able to use LLVM as a backend .
3.22: addx/security/review:
. what was the system that offered better security than
soa's token-based (smart-carded) logged messaging ?
. how did it differ from virtualization ?
. the first wall starts with using source code
rather than binaries:
. a program is an adda binary
that is then compiled to addx code
which is native code but can access only addx
(assured from being compiled by adda),
and then only addx can access actual devices .
. with this separation of power,
the program can tell addx what it needs
and then the user can tell addx
whether those needs sound reasonable .
. an adda binary is an etree (a parse tree)
where half of the compilation is already done:
. after adda text is parsed into etrees,
the etrees are safely translated by adda
to a system lang for compilation into a native binary .
. in essence the adda program has written the program;
if the original author had
programmed in the system lang'
then it could unsafely have
direct access to the machine .
. this is not unlike the .net security strategy;
but, addx is not concerned about supporting
multiple source lang's . [3.31: nevertheless,
adda's etree could be the target of
some other lang's compiler, for piping:
[your lang] -> adda`etree -> [some adda`backend] ]
. both { .net, adda } have a binary format
for sharing code, but .net's assemblies
may be more thoroughly processed than parse trees .
[3.31: and conversely, parse trees are in a
more modifiable, machine-comprehensible state
than .net's assemblies .]
. the ideal situation is to translate adda etrees
directly into llvm code,
but the easiest way to build addx in a portable way
is translating adda etree to the source text
of the language that the target platform prefers;
eg, when on the mac, the target language is
c, obj'c, and the cocoa framework;
while on linux and elsewhere,
it would be c, c++, and the qt framework .
. on the Android OS, the main source of
security is a slow vm
that compounds the speed hit caused by
addx's security not allowing
direct access to anything;
addx is asking every cross-module communication:
"(who are you,
and do you have permissions for that?)
. then if addx is to run dynamically modified code,
it's running a vm within a vm,
and things get even slower!
. the .net idea of security is much faster
than any vm security (even Dalvik)
but perhaps that speed
would come at the cost of space
-- the Android fits within 64mb .
. or,
perhaps because of patents,
any open system that was like .net
would not be easy to defend .
. the primary reason I'm not bothering to check
is that .net's idea is not nearly as simple as mine!
. you can avoid a lot of low-level programming
if you just learn the target's high-level language,
and do a simple lang-to-lang translation .
[3.31:
. actually what .net is essentially doing is
unpacking assemblies into etrees,
checking them the way adda would,
then translating them to
the etrees of some native compiler,
and compiling them dynamically .
. it's that dynamics that gives it the name .net;
that's the basis for dynamically accepting code
from other websites in a safe way .
. it may not need to get low-level,
but translating between etree formats
is definitely more complex than source-to-source .]
. how did llvm fit in with .net?
the .net was an improvement over bytecode;
it had a binary format of high-level code
-- call it wordcode --
and any language could compile to that wordcode .
. there's security in the wordcode,
since it's easy to verify it's not malware,
then a platform-specific runtime can
translate wordcode into an exec.file .
. llvm presents itself as the universal asm.code
(source code of a machine instruction set)
so one quick way to roll a wordcode compiler
is to compile wordcode to asm.code .
. then the llvm for that platform
will do all the heavy lifting of
jit-compiling and dynamic morphing
that keeps the asm.code mirrored in
the most efficient version of native code
for the current circumstances .
. there need be no practical difference between
word.code and the etrees of lisp
and perhaps that's why Stallman would
downplay .net as a Microsoft false freebee .
. what we really need from .net
is something more lisp-like
where the only constant to the std
is that etrees describe the conventions
of the current package .
. what we really need from lisp
is the same binary std for word.code
that .net calls assemblies .
. at the moment lisp's std is text-based
not binary -- xml is the same thing:
people should be communicating with that
only as a last resort,
when no binary convention has been agreed upon .
3.23:
. Mono from SVN is now able to use LLVM as a backend .
3.22: addx/security/review:
. what was the system that offered better security than
soa's token-based (smart-carded) logged messaging ?
. how did it differ from virtualization ?
. the first wall starts with using source code
rather than binaries:
. a program is an adda binary
that is then compiled to addx code
which is native code but can access only addx
(assured from being compiled by adda),
and then only addx can access actual devices .
. with this separation of power,
the program can tell addx what it needs
and then the user can tell addx
whether those needs sound reasonable .
. an adda binary is an etree (a parse tree)
where half of the compilation is already done:
. after adda text is parsed into etrees,
the etrees are safely translated by adda
to a system lang for compilation into a native binary .
. in essence the adda program has written the program;
if the original author had
programmed in the system lang'
then it could unsafely have
direct access to the machine .
. this is not unlike the .net security strategy;
but, addx is not concerned about supporting
multiple source lang's . [3.31: nevertheless,
adda's etree could be the target of
some other lang's compiler, for piping:
[your lang] -> adda`etree -> [some adda`backend] ]
. both { .net, adda } have a binary format
for sharing code, but .net's assemblies
may be more thoroughly processed than parse trees .
[3.31: and conversely, parse trees are in a
more modifiable, machine-comprehensible state
than .net's assemblies .]
. the ideal situation is to translate adda etrees
directly into llvm code,
but the easiest way to build addx in a portable way
is translating adda etree to the source text
of the language that the target platform prefers;
eg, when on the mac, the target language is
c, obj'c, and the cocoa framework;
while on linux and elsewhere,
it would be c, c++, and the qt framework .
. on the Android OS, the main source of
security is a slow vm
that compounds the speed hit caused by
addx's security not allowing
direct access to anything;
addx is asking every cross-module communication:
"(who are you,
and do you have permissions for that?)
. then if addx is to run dynamically modified code,
it's running a vm within a vm,
and things get even slower!
. the .net idea of security is much faster
than any vm security (even Dalvik)
but perhaps that speed
would come at the cost of space
-- the Android fits within 64mb .
. or,
perhaps because of patents,
any open system that was like .net
would not be easy to defend .
. the primary reason I'm not bothering to check
is that .net's idea is not nearly as simple as mine!
. you can avoid a lot of low-level programming
if you just learn the target's high-level language,
and do a simple lang-to-lang translation .
[3.31:
. actually what .net is essentially doing is
unpacking assemblies into etrees,
checking them the way adda would,
then translating them to
the etrees of some native compiler,
and compiling them dynamically .
. it's that dynamics that gives it the name .net;
that's the basis for dynamically accepting code
from other websites in a safe way .
. it may not need to get low-level,
but translating between etree formats
is definitely more complex than source-to-source .]
Subscribe to:
Posts (Atom)