Interesting Project: "Sappeur Compiler"
Shlomi Fish <shlomif-ik1l9ssToec+JF/[email protected]> Sun, 11 Apr 2010 19:59:35 +0300
| Newsgroups | gmane.culture.hackers.israel |
|---|---|
| Message-ID | <[email protected]> |
--LA6sBIiAC4qr9hJMlRtdgm30ojEThB5ft9taTaa
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Spotted on Freshmeat.net:
http://freshmeat.net/projects/sappeur-compiler
Reading from it:
<<<
Sappeur is a safe and efficient programming language. The memory safety of
Sappeur programs is equivalent to Java or .NET without having the performance
penalties of those languages. This is implemented with smart pointers and
stack allocation of objects and arrays. Also, arrays of objects and
synchronous destructors are possible. Sappeur executables are native code and
do not use a garbage collector. The safety properties of Sappeur are assured
by a proper type system (which forbids weird pointer casts for example) and
runtime checks. This is true for both single- and multithreaded programs. The
Sappeur compiler translates programs into safe C++ programs, which makes
integration with existing C++ code simple. Finally, Sappeur technology could
be used to safely and efficiently execute untrusted code, like Java applets
promised to do. This would be achieved by a safe runtime library and trusted
compilation providers.
>>>
Very interesting.
I wonder how it prevents random access to arrays from causing a segfault. Do
they do run-time checks for each access or do they have something like
Eiffel's design-by-contract programming which makes sure wrong values from
appearing in the first place.
I'd like to experiment with it a little in my spare time.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Stop Using MSIE - http://www.shlomifish.org/no-ie/
Deletionists delete Wikipedia articles that they consider lame.
Chuck Norris deletes deletionists whom he considers lame.
Please reply to list if it's a mailing list post - http://shlom.in/reply .
--LA6sBIiAC4qr9hJMlRtdgm30ojEThB5ft9taTaa
Content-Type: text/html; charset=US-ASCII
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body style="background-color: #fff;">
<span style="display:none"> </span>
<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id="ygrp-mlmsg" style="position:relative;">
<div id="ygrp-msg" style="z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->
<div id="ygrp-text" >
<p>Spotted on Freshmeat.net:<br>
<br>
<a href="http://freshmeat.net/projects/sappeur-compiler">http://freshmeat.<wbr>net/projects/<wbr>sappeur-compiler</a><br>
<br>
Reading from it:<br>
<br>
<<<<br>
Sappeur is a safe and efficient programming language. The memory safety of <br>
Sappeur programs is equivalent to Java or .NET without having the performance <br>
penalties of those languages. This is implemented with smart pointers and <br>
stack allocation of objects and arrays. Also, arrays of objects and <br>
synchronous destructors are possible. Sappeur executables are native code and <br>
do not use a garbage collector. The safety properties of Sappeur are assured <br>
by a proper type system (which forbids weird pointer casts for example) and <br>
runtime checks. This is true for both single- and multithreaded programs. The <br>
Sappeur compiler translates programs into safe C++ programs, which makes <br>
integration with existing C++ code simple. Finally, Sappeur technology could <br>
be used to safely and efficiently execute untrusted code, like Java applets <br>
promised to do. This would be achieved by a safe runtime library and trusted <br>
compilation providers.<br>
>>><br>
<br>
Very interesting.<br>
<br>
I wonder how it prevents random access to arrays from causing a segfault. Do <br>
they do run-time checks for each access or do they have something like <br>
Eiffel's design-by-contract programming which makes sure wrong values from <br>
appearing in the first place.<br>
<br>
I'd like to experiment with it a little in my spare time.<br>
<br>
Regards,<br>
<br>
Shlomi Fish<br>
<br>
-- <br>
------------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>---------<wbr>-<br>
Shlomi Fish <a href="http://www.shlomifish.org/">http://www.shlomifi<wbr>sh.org/</a><br>
Stop Using MSIE - <a href="http://www.shlomifish.org/no-ie/">http://www.shlomifi<wbr>sh.org/no-<wbr>ie/</a><br>
<br>
Deletionists delete Wikipedia articles that they consider lame.<br>
Chuck Norris deletes deletionists whom he considers lame.<br>
<br>
Please reply to list if it's a mailing list post - <a href="http://shlom.in/reply">http://shlom.<wbr>in/reply</a> .<br>
</p>
</div>
<!--~-|**|PrettyHtmlStart|**|-~-->
<div style="color: #fff; height: 0;">__._,_.___</div>
<div id="ygrp-actbar" style="clear: both; margin-bottom: 10px; white-space: nowrap; color: #666; padding-top: 15px;">
<div>
<a href="mailto:shlomif-ik1l9ssToec+JF/[email protected]?subject=Interesting Project: "Sappeur Compiler"" style="margin-right: 0; padding-right: 0;">
Reply to <span style="font-weight: 700;">sender</span></a> |
<a href="mailto:[email protected]?subject=Interesting Project: "Sappeur Compiler"">
Reply to <span style="font-weight: 700;">group</span></a> |
<a href="http://groups.yahoo.com/group/hackers-il/post;_ylc=X3oDMTJwNWMzMzJoBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzUxMTQEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMjcxMDA1MTk2?act=reply&messageNum=5114">Reply <span style="font-weight: 700;">via web post</span></a> |
<a href="http://groups.yahoo.com/group/hackers-il/post;_ylc=X3oDMTJldGVsdGxhBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI3MTAwNTE5Ng--" style="font-weight: 700;">Start a New Topic</a>
</div>
<a href="http://groups.yahoo.com/group/hackers-il/message/5114;_ylc=X3oDMTM0N3IycGhlBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzUxMTQEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMjcxMDA1MTk2BHRwY0lkAzUxMTQ-">Messages in this topic</a>
(<span style="font-weight: 700;">1</span>)
</div>
<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-vital" style="background-color: #e0ecee; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;">
<span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; ">Recent Activity:</span>
<ul style="list-style-type: none; margin: 0; padding: 0; display: inline;">
</ul>
<div style="clear: both; padding-top: 2px; color: #1e66ae;">
<a href="http://groups.yahoo.com/group/hackers-il;_ylc=X3oDMTJlcTNqZTAyBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTI3MTAwNTE5Ng--" style="text-decoration: none;">Visit Your Group</a>
</div>
</div>
<div id="ygrp-mkp" style="border: 1px solid #d8d8d8; clear: both; float: left; font-family: Arial; margin: 5px 0 10px 0; padding: 0 10px;">
<div id="hd" style="color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0;">MARKETPLACE</div>
<div id="ads" style="margin-bottom: 10px;">
<div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;">
<p><a href="http://us.ard.yahoo.com/SIG=15oij8f2p/M=493064.13983314.13965207.13298430/D=groups/S=1705006764:MKP1/Y=YAHOO/EXP=1271012396/L=a830046c-458b-11df-a512-b335d7d11dab/B=SgteJWKImiM-/J=1271005196896062/K=Mz6ZE2XK5.NHpKE3w8_hqg/A=6046497/R=0/SIG=11jls91tg/*http://advision.webevents.yahoo.com/domorefordogs">Do More for Dogs Group. Connect with other dog owners who do more.</a></p> <script language=javascript>
if(window.yzq_d==null)window.yzq_d=new Object();
window.yzq_d['SgteJWKImiM-']='&U=13cg06uc7%2fN%3dSgteJWKImiM-%2fC%3d493064.13983314.13965207.13298430%2fD%3dMKP1%2fB%3d6046497%2fV%3d1';
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=a830046c-458b-11df-a512-b335d7d11dab&T=1d8ldu1no%2fX%3d1271005196%2fE%3d1705006764%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d296408087%2fH%3dY29udGVudD0iR287UG9kY2FzdHM7V2Vic2l0ZV9TZXJ2aWNlcztXaWRnZXRzO1lhaG9vX1NlYXJjaF9NYXJrZXRpbmc7RmxpY2tyO0JyaWVmY2FzZTtGaW5hbmNlO0Jvb2ttYXJrO01vYmlsZTsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImE4MzAwNDZjLTQ1OGItMTFkZi1hNTEyLWIzMzVkN2QxMWRhYiIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MTAwNTE5Njg4OTU1MiIg%2fQ%3d-1%2fS%3d1%2fJ%3d3D5EC442&U=13cg06uc7%2fN%3dSgteJWKImiM-%2fC%3d493064.13983314.13965207.13298430%2fD%3dMKP1%2fB%3d6046497%2fV%3d1"></noscript> </div>
<div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;">
<hr style="border: 1px solid #d8d8d8;">
<p><a href="http://us.ard.yahoo.com/SIG=15o33da09/M=493064.13814537.13965224.10835568/D=groups/S=1705006764:MKP1/Y=YAHOO/EXP=1271012396/L=a830046c-458b-11df-a512-b335d7d11dab/B=SwteJWKImiM-/J=1271005196896062/K=Mz6ZE2XK5.NHpKE3w8_hqg/A=6042764/R=0/SIG=11jbo19n3/*http://advision.webevents.yahoo.com/momconnection">Welcome to Mom Connection! Share stories, news and more with moms like you.</a></p><script language=javascript>
if(window.yzq_d==null)window.yzq_d=new Object();
window.yzq_d['SwteJWKImiM-']='&U=13ckseadp%2fN%3dSwteJWKImiM-%2fC%3d493064.13814537.13965224.10835568%2fD%3dMKP1%2fB%3d6042764%2fV%3d1';
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=a830046c-458b-11df-a512-b335d7d11dab&T=1d923nrq6%2fX%3d1271005196%2fE%3d1705006764%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d2736063406%2fH%3dY29udGVudD0iR287UG9kY2FzdHM7V2Vic2l0ZV9TZXJ2aWNlcztXaWRnZXRzO1lhaG9vX1NlYXJjaF9NYXJrZXRpbmc7RmxpY2tyO0JyaWVmY2FzZTtGaW5hbmNlO0Jvb2ttYXJrO01vYmlsZTsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImE4MzAwNDZjLTQ1OGItMTFkZi1hNTEyLWIzMzVkN2QxMWRhYiIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MTAwNTE5Njg4OTU1MiIg%2fQ%3d-1%2fS%3d1%2fJ%3d3D5EC442&U=13ckseadp%2fN%3dSwteJWKImiM-%2fC%3d493064.13814537.13965224.10835568%2fD%3dMKP1%2fB%3d6042764%2fV%3d1"></noscript> </div>
<div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;">
<hr style="border: 1px solid #d8d8d8;">
<p><a href="http://us.ard.yahoo.com/SIG=15olkullq/M=493064.14012770.13963757.13298430/D=groups/S=1705006764:MKP1/Y=YAHOO/EXP=1271012396/L=a830046c-458b-11df-a512-b335d7d11dab/B=TAteJWKImiM-/J=1271005196896062/K=Mz6ZE2XK5.NHpKE3w8_hqg/A=6015306/R=0/SIG=11vlkvigg/*http://advision.webevents.yahoo.com/hobbiesandactivitieszone/">Hobbies & Activities Zone: Find others who share your passions! Explore new interests.</a></p><script language=javascript>
if(window.yzq_d==null)window.yzq_d=new Object();
window.yzq_d['TAteJWKImiM-']='&U=13cou2vho%2fN%3dTAteJWKImiM-%2fC%3d493064.14012770.13963757.13298430%2fD%3dMKP1%2fB%3d6015306%2fV%3d1';
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=a830046c-458b-11df-a512-b335d7d11dab&T=1d9q851vu%2fX%3d1271005196%2fE%3d1705006764%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d1282034147%2fH%3dY29udGVudD0iR287UG9kY2FzdHM7V2Vic2l0ZV9TZXJ2aWNlcztXaWRnZXRzO1lhaG9vX1NlYXJjaF9NYXJrZXRpbmc7RmxpY2tyO0JyaWVmY2FzZTtGaW5hbmNlO0Jvb2ttYXJrO01vYmlsZTsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImE4MzAwNDZjLTQ1OGItMTFkZi1hNTEyLWIzMzVkN2QxMWRhYiIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MTAwNTE5Njg4OTU1MiIg%2fQ%3d-1%2fS%3d1%2fJ%3d3D5EC442&U=13cou2vho%2fN%3dTAteJWKImiM-%2fC%3d493064.14012770.13963757.13298430%2fD%3dMKP1%2fB%3d6015306%2fV%3d1"></noscript> </div>
</div>
</div>
<div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;">
<a href="http://groups.yahoo.com/;_ylc=X3oDMTJkc3Bmc25jBF9TAzk3MzU5NzE0BGdycElkAzE4NTczMzIEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMjcxMDA1MTk2" style="float: left;"><img src="http://l.yimg.com/a/i/us/yg/logo/us.gif" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a>
<div style="color: #747575; float: right;">Switch to: <a href="mailto:[email protected]?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:[email protected]?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="http://docs.yahoo.com/info/terms/" style="text-decoration: none;">Terms of Use</a></div>
</div>
<!-- |**|end egp html banner|**| -->
</div> <!-- ygrp-msg -->
<!-- Sponsor -->
<!-- |**|begin egp html banner|**| -->
<div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;">
<!-- Start Recommendations -->
<div id="ygrp-reco">
</div>
<!-- End Recommendations -->
</div> <!-- |**|end egp html banner|**| -->
<div style="clear:both; color: #FFF; font-size:1px;">.</div>
</div>
<img src="http://geo.yahoo.com/serv?s=97359714/grpId=1857332/grpspId=1705006764/msgId=5114/stime=1271005196/nc1=4507179/nc2=3848644/nc3=4836044" width="1" height="1"> <br>
<div style="color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</body>
<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
<style type="text/css">
<!--
#ygrp-mkp {
border: 1px solid #d8d8d8;
font-family: Arial;
margin: 10px 0;
padding: 0 10px;
}
#ygrp-mkp hr {
border: 1px solid #d8d8d8;
}
#ygrp-mkp #hd {
color: #628c2a;
font-size: 85%;
font-weight: 700;
line-height: 122%;
margin: 10px 0;
}
#ygrp-mkp #ads {
margin-bottom: 10px;
}
#ygrp-mkp .ad {
padding: 0 0;
}
#ygrp-mkp .ad a {
color: #0000ff;
text-decoration: none;
}
#ygrp-sponsor #ygrp-lc {
font-family: Arial;
}
#ygrp-sponsor #ygrp-lc #hd {
margin: 10px 0px;
font-weight: 700;
font-size: 78%;
line-height: 122%;
}
#ygrp-sponsor #ygrp-lc .ad {
margin-bottom: 10px;
padding: 0 0;
}
a {
color: #1e66ae;
}
#actions {
font-family: Verdana;
font-size: 11px;
padding: 10px 0;
}
#activity {
background-color: #e0ecee;
float: left;
font-family: Verdana;
font-size: 10px;
padding: 10px;
}
#activity span {
font-weight: 700;
}
#activity span:first-child {
text-transform: uppercase;
}
#activity span a {
color: #5085b6;
text-decoration: none;
}
#activity span span {
color: #ff7900;
}
#activity span .underline {
text-decoration: underline;
}
.attach {
clear: both;
display: table;
font-family: Arial;
font-size: 12px;
padding: 10px 0;
width: 400px;
}
.attach div a {
text-decoration: none;
}
.attach img {
border: none;
padding-right: 5px;
}
.attach label {
display: block;
margin-bottom: 5px;
}
.attach label a {
text-decoration: none;
}
blockquote {
margin: 0 0 0 4px;
}
.bold {
font-family: Arial;
font-size: 13px;
font-weight: 700;
}
.bold a {
text-decoration: none;
}
dd.last p a {
font-family: Verdana;
font-weight: 700;
}
dd.last p span {
margin-right: 10px;
font-family: Verdana;
font-weight: 700;
}
dd.last p span.yshortcuts {
margin-right: 0;
}
div.attach-table div div a {
text-decoration: none;
}
div.attach-table {
width: 400px;
}
div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited {
text-decoration: none;
}
div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited {
text-decoration: none;
}
div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
font-family: Verdana;
font-size: 10px;
font-weight: normal;
}
.green {
color: #628c2a;
}
.MsoNormal {
margin: 0 0 0 0;
}
o {
font-size: 0;
}
#photos div {
float: left;
width: 72px;
}
#photos div div {
border: 1px solid #666666;
height: 62px;
overflow: hidden;
width: 62px;
}
#photos div label {
color: #666666;
font-size: 10px;
overflow: hidden;
text-align: center;
white-space: nowrap;
width: 64px;
}
#reco-category {
font-size: 77%;
}
#reco-desc {
font-size: 77%;
}
.replbq {
margin: 4px;
}
#ygrp-actbar div a:first-child {
/* border-right: 0px solid #000;*/
margin-right: 2px;
padding-right: 5px;
}
#ygrp-mlmsg {
font-size: 13px;
font-family: Arial, helvetica,clean, sans-serif;
*font-size: small;
*font: x-small;
}
#ygrp-mlmsg table {
font-size: inherit;
font: 100%;
}
#ygrp-mlmsg select, input, textarea {
font: 99% Arial, Helvetica, clean, sans-serif;
}
#ygrp-mlmsg pre, code {
font:115% monospace;
*font-size:100%;
}
#ygrp-mlmsg * {
line-height: 1.22em;
}
#ygrp-mlmsg #logo {
padding-bottom: 10px;
}
#ygrp-mlmsg a {
color: #1E66AE;
}
#ygrp-msg p a {
font-family: Verdana;
}
#ygrp-msg p#attach-count span {
color: #1E66AE;
font-weight: 700;
}
#ygrp-reco #reco-head {
color: #ff7900;
font-weight: 700;
}
#ygrp-reco {
margin-bottom: 20px;
padding: 0px;
}
#ygrp-sponsor #ov li a {
font-size: 130%;
text-decoration: none;
}
#ygrp-sponsor #ov li {
font-size: 77%;
list-style-type: square;
padding: 6px 0;
}
#ygrp-sponsor #ov ul {
margin: 0;
padding: 0 0 0 8px;
}
#ygrp-text {
font-family: Georgia;
}
#ygrp-text p {
margin: 0 0 1em 0;
}
#ygrp-text tt {
font-size: 120%;
}
#ygrp-vital ul li:last-child {
border-right: none !important;
}
-->
</style>
</head>
<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->
--LA6sBIiAC4qr9hJMlRtdgm30ojEThB5ft9taTaa--