Re: Master Thesis using D Programming language.

2020-08-25 Thread Arun via Digitalmars-d-learn

On Monday, 24 August 2020 at 19:56:49 UTC, Tariq Siddiqui wrote:

Hello everyone,

I am looking for a master thesis topic using D Programming 
language. Earlier I choose Design by Introspection, but I did 
not find enough material in academic journals. DbI total 
material which I found is DConf Andrei talk and the similar 
talk at Google campus, which starts with 50 Deutsche Mark story 
and ends with explaining PbD, DbI and other Dlang internals. No 
doubt that Andrei's discussion was great. DbI as a topic is 
excellent, but as per my university requirements, I was not 
able to find five articles in the last five years in any 
academic journal, to start the initial discussion about the 
research topic.


I am still opened with my topic, next week, I have to submit my 
draft proposal. Till now, I did not meet my dissertation 
advisor.


I am looking for something practical and less theoretical. I 
have found some thesis done using Rust, you guys as a language 
expert can these below projects be achievable using D 
Programming language.


http://www.barrelfish.org/publications/ma-foellmic-bfrust.pdf
https://www.diva-portal.org/smash/get/diva2:1238890/FULLTEXT01.pdf
https://github.com/Gankra/thesis/blob/master/thesis.pdf

Regards,
Tariq Siddiqui.


D for a @safer Linux Kernel was worked on by Alexandru Militaru: 
https://www.youtube.com/watch?v=weRSwbZtKu0


You can also browse the previous GSoC proposals at 
https://wiki.dlang.org/GSOC_2019_Ideas and 
https://wiki.dlang.org/GSOC_2018_Ideas of which some might 
qualify as masters thesis. These are pretty hands on requiring 
good understanding of the theory as well.


D blog had a similar post recently. 
https://dlang.org/blog/2020/08/23/symmetry-autumn-of-code-2020-projects-and-participants/


--
Arun


Re: Master Thesis using D Programming language.

2020-08-25 Thread aberba via Digitalmars-d-learn

On Monday, 24 August 2020 at 19:56:49 UTC, Tariq Siddiqui wrote:

Hello everyone,

I am looking for a master thesis topic using D Programming 
language. Earlier I choose Design by Introspection, but I did 
not find enough material in academic journals. DbI total 
material which I found is DConf Andrei talk and the similar 
talk at Google campus, which starts with 50 Deutsche Mark story 
and ends with explaining PbD, DbI and other Dlang internals. No 
doubt that Andrei's discussion was great. DbI as a topic is 
excellent, but as per my university requirements, I was not 
able to find five articles in the last five years in any 
academic journal, to start the initial discussion about the 
research topic.

Academic don't know innovation. Only history :)



I am still opened with my topic, next week, I have to submit my 
draft proposal. Till now, I did not meet my dissertation 
advisor.


Metaprogramming as suggested sounds interesting upon second 
thought. On Wikipedia, only D and C++ seems to have sufficient 
implementation among mainstream languages. With D's being 
exceptionally capable.


So you might want to do something around that...and how it 
impacts software development.




I am looking for something practical and less theoretical. I 
have found some thesis done using Rust, you guys as a language 
expert can these below projects be achievable using D 
Programming language.


Yep. Its does. Metaprogramming really has a very significant 
benefit in practice. And disign by introspection is one way it 
can be used.




Re: Master Thesis using D Programming language.

2020-08-25 Thread aberba via Digitalmars-d-learn

On Tuesday, 25 August 2020 at 16:52:17 UTC, aberba wrote:

On Monday, 24 August 2020 at 19:56:49 UTC, Tariq Siddiqui wrote:
Academic don't know innovation. Only history :)


Academia*


Re: Master Thesis using D Programming language.

2020-08-24 Thread James Blachly via Digitalmars-d-learn

On Monday, 24 August 2020 at 19:56:49 UTC, Tariq Siddiqui wrote:

Hello everyone,

I am looking for a master thesis topic using D Programming 
language. Earlier I choose Design by Introspection, but I did 
not find enough material in academic journals. DbI total 
material which I found is DConf Andrei talk and the similar 
talk at Google campus, which starts with 50 Deutsche Mark story 
and ends with explaining PbD, DbI and other Dlang internals. No 
doubt that Andrei's discussion was great. DbI as a topic is 
excellent, but as per my university requirements, I was not 
able to find five articles in the last five years in any 
academic journal, to start the initial discussion about the 
research topic.


I am still opened with my topic, next week, I have to submit my 
draft proposal. Till now, I did not meet my dissertation 
advisor.


I am looking for something practical and less theoretical. I 
have found some thesis done using Rust, you guys as a language 
expert can these below projects be achievable using D 
Programming language.


http://www.barrelfish.org/publications/ma-foellmic-bfrust.pdf
https://www.diva-portal.org/smash/get/diva2:1238890/FULLTEXT01.pdf
https://github.com/Gankra/thesis/blob/master/thesis.pdf

Regards,
Tariq Siddiqui.


Well, what would you like to study? Generally, the thesis will be 
of a topic that is (a) great interest to you and (b) has room for 
improvement in the field.


The theses you listed cover OS development, memory safe kernel 
programming, and safety generally, respectively. Is this the area 
you wish to work in?  What about other areas, such as 
concurrency, message passing, high performance, Type Theory, etc.?


You mentioned Design by Introspection hard to find material 
about. What if you broaden this a bit and consider the topic of 
metaprogramming more generally?


Best of luck to you




Re: Master thesis

2017-07-03 Thread Ecstatic Coder via Digitalmars-d
Maybe changing the application domain could give you a better 
dissertation axis for your thesis.


For instance comparing the architecture and implementation 
details of the same game server application implemented in 
languages like C++, Rust, D, Go, Java, etc.


As any web-related application, a game server executable MUST 
be BOTH safe and robust, there is no other choice, it must be 
able to run for days and weeks without crashing, resisting to 
low memory conditions, network saturation, connection attacks, 
etc.


Btw that doesn't mean you should not implement the SDL game 
client with these same languages.


I'm just saying that implementing the server side too, with a 
simple communication protocol allowing for instance the game to 
submit the player highscores, could give you a broader perpective 
for the safety and security problems.


Re: Master thesis

2017-07-02 Thread Ecstatic Coder via Digitalmars-d
Maybe an comparison between different software-products (one in 
an insecure  and one in a secure programming language) to show 
the difference and potential vulnerabilities.


Maybe changing the application domain could give you a better 
dissertation axis for your thesis.


For instance comparing the architecture and implementation 
details of the same game server application implemented in 
languages like C++, Rust, D, Go, Java, etc.


As any web-related application, a game server executable MUST be 
BOTH safe and robust, there is no other choice, it must be able 
to run for days and weeks without crashing, resisting to low 
memory conditions, network saturation, connection attacks, etc.




Re: Master thesis

2017-07-02 Thread Dgame via Digitalmars-d

On Saturday, 1 July 2017 at 21:00:14 UTC, Ecstatic Coder wrote:
Whatever the object oriented language you use, you can keep 
exactly the same global game architecture, using more or less 
the same classes for your game subsystems and gameplay elements.


Therefore, as an old game industry veteran, I confirm what you 
already know, which is that it's all about memory allocation, 
access and deallocation when comparing a game made in C++, D or 
Rust.


I'm not saying that other matters are not important, but many 
game development directors apply Bertrand Meyer's architectural 
advices (design by contract with pre/post condition assertions, 
etc) since the early nineties, so there is not much difference 
between a C++ game and a D/Rust game in this area.



So all that remains in the end are just concurrency and 
memory-related features, like immutable data, array memory 
slicing, automatic array bound and null pointer checking, 
object destruction and deallocation through variable scope and 
garbage collection, etc.


This of course includes interfacing with C/C++, i.e. managing 
the memory and lifecycle of C/C++ structs/objects from D or 
Rust.


With D, my biggest concern was about avoiding the application 
thread to freeze during a GC, while C++ and Rust can completely 
ignore this problem.


IMHO just these last points could already explain why Rust and 
C++ still remain preferred to D for game development...


That's a good statement which I found very often recently. Maybe 
I should change my main focus from architecture to 
software-engineering per se...
Maybe an comparison between different software-products (one in 
an insecure  and one in a secure programming language) to show 
the difference and potential vulnerabilities.


Re: Master thesis

2017-07-01 Thread Ecstatic Coder via Digitalmars-d

On Saturday, 1 July 2017 at 08:48:19 UTC, Dgame wrote:

Hi there. I hope that is the right place for this topic.
I'm currently writing my master thesis and just like in my 
bachelor thesis, D will play a significant role in my master 
thesis. My thesis will discuss the impact of software 
engineering concepts of security-oriented programming languages 
on software development with a focus on the effects on software 
design / design patterns and specifically software 
architecture. As said, D will be one of the few secure 
programming languages which I will present. Others will be Rust 
& Ada and on the other side C/C++ will be one example of the 
many unsecure programming languages. That as a short 
introduction of the purpose of my master thesis and what I 
intend to do in the next six months. Currently, I'm collecting 
links, literature and other stuff on that topic. But I thought 
that maybe some of you know more about that and can give me 
hints, links or maybe even real live experience/examples. That 
would be really kind of you. :)


For example:
Which impact would have D on the software-architecture, if it 
would be choosen for a 2D game instead of C/C++?
The 2D game is my choosen case example since I programmed small 
games on gamejams in C/C++ and D, until two years ago. Of 
course, any architecture regarding that topic is of interest.


Have you already made such experience or do you know people who 
have and maybe even wrote articles about?


Many thanks in advance!


Whatever the object oriented language you use, you can keep 
exactly the same global game architecture, using more or less the 
same classes for your game subsystems and gameplay elements.


Therefore, as an old game industry veteran, I confirm what you 
already know, which is that it's all about memory allocation, 
access and deallocation when comparing a game made in C++, D or 
Rust.


I'm not saying that other matters are not important, but many 
game development directors apply Bertrand Meyer's architectural 
advices (design by contract with pre/post condition assertions, 
etc) since the early nineties, so there is not much difference 
between a C++ game and a D/Rust game in this area.



So all that remains in the end are just concurrency and 
memory-related features, like immutable data, array memory 
slicing, automatic array bound and null pointer checking, object 
destruction and deallocation through variable scope and garbage 
collection, etc.


This of course includes interfacing with C/C++, i.e. managing the 
memory and lifecycle of C/C++ structs/objects from D or Rust.


With D, my biggest concern was about avoiding the application 
thread to freeze during a GC, while C++ and Rust can completely 
ignore this problem.


IMHO just these last points could already explain why Rust and 
C++ still remain preferred to D for game development...





Re: Master thesis

2017-07-01 Thread Patrick Schluter via Digitalmars-d

On Saturday, 1 July 2017 at 15:58:04 UTC, ketmar wrote:

Dgame wrote:


On Saturday, 1 July 2017 at 14:40:36 UTC, ketmar wrote:

Dgame wrote:

Which impact would have D on the software-architecture, if 
it would be choosen for a 2D game instead of C/C++?
i can actually finish 'em. most of the time when i'm working 
with D, i feel that compiler tries to help me. EVERY TIME i'm 
working with C/C++, i know for sure that compiler silently 
setting traps for me ('cause it is absolutely impossible to 
write safe and secure C/C++ code
Do you have examples (code and/or personal experience) about 
that?
basically, all of my projects. ;-) like zx spectrum emulator, 
which took monthes in C, and only weeks in D (and it almost on 
par feature-wise with C version, and even more advanced in some 
areas like FDC emulation).


-- tnx to standard committee and compiler implementers, 
anything can turn into UB unexpectedly, and writing UB-free 
code is tedious and it will have UB anyway).

Is that described somewhere? Or do you have examples or both?
ah, many people are complaining. just recent ones (there are 
MUCH MORE out there, just follow the links in the articles, for 
example):


http://www.yodaiken.com/2017/06/26/the-c-standard-versus-c-and-the-mother-of-all-hacks/
http://www.yodaiken.com/2017/01/05/undefined-behavior-and-the-purpose-of-c/

everything compiler authors has to say is (see gcc bugzilla 
link in one of the articles): "it is permitted by the standard. 
don't write code with UB". that is, modern optimizing C 
compilers are *actively* trying to *subvert* your code. using 
modern C compiler ends up in you being punished for all kind of 
random things: compiler is using *any* your error against you. 
it probably helps to win some stupid compiler benchmarks, but 
it is crystal clear that modern C is not made to write 
real-world programs in it: programmer have to manually track 
the things, and make machine happy. this is exactly the 
*opposite* of the machine's purpose: it is machine's task to 
make human happy, and free human from tedious and error-prone 
work, not vice versa! ;-)


besides those issues, the GREAT advantage of D is well-defined 
low-level types. `uint` is always 32 bits, `short` is always 16 
bits and 2-complement (and it has overflow defined!), and so 
on. no need to `stdint.h` anymore (and why do we need it in C 
at all? winning several CPU cycles on the occasion vs hours of 
fighting to write portable code... OBEY THE MACHINE, YOU 
WORTHLESS HUMAN! ;-)


i dropped C years ago, switched to D, and i will NEVER return. 
D was made by humans, for humans, not by committee and compiler 
writers to win useless benchmarks.


Amen.


Re: Master thesis

2017-07-01 Thread ketmar via Digitalmars-d
p.s.: as a side note. i planned to write my own email client for *decades*. 
literally. but never managed to fight my way through C (and let's don't 
even start to talk about C++!). with D, my dream finally turned into 
reality: i am using Chiroptera e-mail/nntp client, written by me, from 
scratch, in D. and i must confess that i prefer to not switch off/reboot my 
box, so my e-mail client should not crash. now, Chiroptera works for 
monthes without any crash or (significant ;-) memleak. and i don't have to 
restart it ocasionally, 'cause it crashed, or eats gigabytes of RAM. ;-)


Re: Master thesis

2017-07-01 Thread ketmar via Digitalmars-d

Dgame wrote:


On Saturday, 1 July 2017 at 14:40:36 UTC, ketmar wrote:

Dgame wrote:

Which impact would have D on the software-architecture, if it would be 
choosen for a 2D game instead of C/C++?
i can actually finish 'em. most of the time when i'm working with D, i 
feel that compiler tries to help me. EVERY TIME i'm working with C/C++, 
i know for sure that compiler silently setting traps for me ('cause it 
is absolutely impossible to write safe and secure C/C++ code

Do you have examples (code and/or personal experience) about that?
basically, all of my projects. ;-) like zx spectrum emulator, which took 
monthes in C, and only weeks in D (and it almost on par feature-wise with C 
version, and even more advanced in some areas like FDC emulation).


-- tnx to standard committee and compiler implementers, anything can 
turn into UB unexpectedly, and writing UB-free code is tedious and it 
will have UB anyway).

Is that described somewhere? Or do you have examples or both?
ah, many people are complaining. just recent ones (there are MUCH MORE out 
there, just follow the links in the articles, for example):


http://www.yodaiken.com/2017/06/26/the-c-standard-versus-c-and-the-mother-of-all-hacks/
http://www.yodaiken.com/2017/01/05/undefined-behavior-and-the-purpose-of-c/

everything compiler authors has to say is (see gcc bugzilla link in one of the 
articles): "it is permitted by the standard. don't write code with UB". 
that is, modern optimizing C compilers are *actively* trying to 
*subvert* your code. using modern C compiler ends up in you being punished 
for all kind of random things: compiler is using *any* your error against 
you. it probably helps to win some stupid compiler benchmarks, but it is 
crystal clear that modern C is not made to write real-world programs in it: 
programmer have to manually track the things, and make machine happy. this 
is exactly the *opposite* of the machine's purpose: it is machine's task to 
make human happy, and free human from tedious and error-prone work, not vice 
versa! ;-)


besides those issues, the GREAT advantage of D is well-defined low-level 
types. `uint` is always 32 bits, `short` is always 16 bits and 2-complement 
(and it has overflow defined!), and so on. no need to `stdint.h` anymore 
(and why do we need it in C at all? winning several CPU cycles on the 
occasion vs hours of fighting to write portable code... OBEY THE MACHINE, 
YOU WORTHLESS HUMAN! ;-)


i dropped C years ago, switched to D, and i will NEVER return. D was made 
by humans, for humans, not by committee and compiler writers to win useless 
benchmarks.


Re: Master thesis

2017-07-01 Thread Dgame via Digitalmars-d

On Saturday, 1 July 2017 at 14:40:36 UTC, ketmar wrote:

Dgame wrote:

Which impact would have D on the software-architecture, if it 
would be choosen for a 2D game instead of C/C++?
i can actually finish 'em. most of the time when i'm working 
with D, i feel that compiler tries to help me. EVERY TIME i'm 
working with C/C++, i know for sure that compiler silently 
setting traps for me ('cause it is absolutely impossible to 
write safe and secure C/C++ code

Do you have examples (code and/or personal experience) about that?

-- tnx to standard committee and compiler implementers, 
anything can turn into UB unexpectedly, and writing UB-free 
code is tedious and it will have UB anyway).

Is that described somewhere? Or do you have examples or both?

otherwise, i hate writing articles: writing code is way more 
fun. ;-)


Same here. :D


Re: Master thesis

2017-07-01 Thread ketmar via Digitalmars-d

Dgame wrote:

Which impact would have D on the software-architecture, if it would be 
choosen for a 2D game instead of C/C++?
i can actually finish 'em. most of the time when i'm working with D, i feel 
that compiler tries to help me. EVERY TIME i'm working with C/C++, i know 
for sure that compiler silently setting traps for me ('cause it is 
absolutely impossible to write safe and secure C/C++ code -- tnx to 
standard committee and compiler implementers, anything can turn into UB 
unexpectedly, and writing UB-free code is tedious and it will have UB 
anyway).


otherwise, i hate writing articles: writing code is way more fun. ;-)


Re: Master thesis

2017-07-01 Thread Dgame via Digitalmars-d
If you haven't watched it yet, Walter's dconf keynote this year 
is a good place to start as are the discussion on dip1000 and 
the dip itself.

Thanks, that's a good hint, I'll definitely watch it. :)

But as Rikki said the fact that all arrays carry they length 
means that we have array bounds checking, which rules out one 
class of very common bugs you would get in C.
Yes, that's what I call "security oriented software technology 
concept" or "vulnerability avoiding concept". It's one of the 
many things D did right and which I want to mention (there are so 
many!), but it's not a  concrete impact on software architecture. 
That's what I mainly seek. It's not that easy to find concrete 
impacts IMO.


I'm about to hand in my Honours thesis on Monday after doing it 
for a year, I don't think I could do one in six months, so best 
of luck!


If I could, I would also happily wrote a year or more, since 
there is so much to write about, but we only have six months for 
our master thesis.


Re: Master thesis

2017-07-01 Thread Nicholas Wilson via Digitalmars-d

On Saturday, 1 July 2017 at 08:48:19 UTC, Dgame wrote:

Hi there. I hope that is the right place for this topic.
I'm currently writing my master thesis and just like in my 
bachelor thesis, D will play a significant role in my master 
thesis. My thesis will discuss the impact of software 
engineering concepts of security-oriented programming languages 
on software development with a focus on the effects on software 
design / design patterns and specifically software 
architecture. As said, D will be one of the few secure 
programming languages which I will present. Others will be Rust 
& Ada and on the other side C/C++ will be one example of the 
many unsecure programming languages. That as a short 
introduction of the purpose of my master thesis and what I 
intend to do in the next six months. Currently, I'm collecting 
links, literature and other stuff on that topic. But I thought 
that maybe some of you know more about that and can give me 
hints, links or maybe even real live experience/examples. That 
would be really kind of you. :)


For example:
Which impact would have D on the software-architecture, if it 
would be choosen for a 2D game instead of C/C++?
The 2D game is my choosen case example since I programmed small 
games on gamejams in C/C++ and D, until two years ago. Of 
course, any architecture regarding that topic is of interest.


Have you already made such experience or do you know people who 
have and maybe even wrote articles about?


Many thanks in advance!


If you haven't watched it yet, Walter's dconf keynote this year 
is a good place to start as are the discussion on dip1000 and the 
dip itself.


But as Rikki said the fact that all arrays carry they length 
means that we have array bounds checking, which rules out one 
class of very common bugs you would get in C.


I'm about to hand in my Honours thesis on Monday after doing it 
for a year, I don't think I could do one in six months, so best 
of luck!





Re: Master thesis

2017-07-01 Thread rikki cattermole via Digitalmars-d

Not too helpful but a few points that may interest you:
- All dynamic arrays are slices. T[] array = ptr[0 .. length];
- Compute values at CTFE, compare, contrast against e.g. unittests for 
extra verification