Deutsch   English   Français   Italiano  
<4b9a47d628677882c26b2518a78571043ef1bdb9@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder9.news.weretis.net!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: fir <fir@grunge.pl>
Newsgroups: comp.lang.c
Subject: on named blocks concept
Date: Wed, 06 Nov 2024 17:04:28 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <4b9a47d628677882c26b2518a78571043ef1bdb9@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 6 Nov 2024 16:04:33 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="1235240"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24
X-Spam-Checker-Version: SpamAssassin 4.0.0
Bytes: 2955
Lines: 85

if c would have something that i name as named block
much more interesting options in coding in c would be
imo avaliable..
by named block i understood something like

foo {
   //code here
}

whiuch resembles function , as can be placed in 'global'
(module level) space but also could be placed locally in
functions

int foo() {
   a { }
   b { }
}

then it could be called internally

int foo() {
   a { }
   b { }

   int x = a()*a()*b(); //though imo () probab;ly should be optionall
}

or externally

foo.a()

those blocks probably should have acces to local variables of
parent functions or parant block so it yelds imo to conclusion
that local variables and arguments should be by default static
(those stack variables by default are bad idea imo.. its kinda optimisation
needed whan you got 4kb RAM but on bigger machines this optimisation is 
bad imo)

if so mant things can be done with this blocks probably, im not exactly
sure what exactly

ona assembly label blocks by defauld probably be done by

name:
   //...
   ret

  so then can be reused though some version to call it in place
  of definitions could be also avaliable imo (something like
  a{}() in a sense but better looking (this looks to bad)

  overally those named block should be also united with function
  so they become the same if use on them the functionality of
  passing arguments and returning variables

  foo {
    a {}

    int x, y = a(1,2)
  }

  though i maybe not sure how to add this mechanism
  possibly som,ething liek this (until something better could be found)

  a
  {
   in int c;
   in int d;
   out int x = c+d;
   out int y = c-d;
  }

  or
  a( int c, int d)
  {
   out int x = c+d;
   out int y = c-d;
  }

as all c d x y are static you may call a() without any or
with any set int x, y = a(1) int x = a(1,2) and compiler
would generate the assigments (how to call it on assembly level us
wuite clear, not fully clear is what syntax in language to use

this concept is yet not fully build yet but what i descrbed her i guess 
is okay