Jaki wielki program scisle informatyczny ?

0

Witam.
Wreszcie uwierzylem ze moge napisac cos wiekszego. Jezeli nie napisze tego to najwyzej poniose porazke ale mniejsza niz pisanie nawet poprawnych wielu mikro-programow.
Chce rownolegle pisac 1-3 wielkie/srednie (powyzej 25000 linii) programy o tematyce scisle informatycznej tzn. abym nie musial odwolywac sie do ekonomii, fizyki, humanistyki, biologii, chemii, turystyki, astronomii, itd. a matematyki i angielskiego to tylko to co niezbedne. Najlepiej jakby to byl program konsolowy, ale jakies malo zaawansowana grafika tez pasowalaby. Caly program nie musialby byc przenosny, ale wazne ze odpalilbym go na Linuxie. Chce aby ten program (albo przynajmniej te 3 programy razem wziete) wymagaly zaangazowania calego jezyka programowania i jego standardowej biblioteki albo chociaz przewazajacej wiekszosci. Akceptowalbym tez aby 1 program pisac w Java, drugi w C++, ale aby przerabialy inne zagadnienia, algorytmy, struktury danych. Oczywiscie idealem byloby polaczenie Java i C++ a najlepiej jeszcze C przez Java_Native_Interface. Na mysl przychodzi mi:

  1. Kompilator w Javie (bo troche obawiam sie asemblera jakbym pisal w C / C++), ale gdybym wybral bajtkod Javy to chyba bym uniknal asemblera ? Czy kompilator to glownie dzialanie na regexach, liczbach, stringach, streamach - czyli pisanie kompilatora skupialoby sie glownie na pewnym wycinku jezyka, algorymow, struktur danych, a pomijaloby inne ?
  2. Interpreter w C i C++
  3. Powloka bash w C i C++
  4. Komunikacja miedzyprocesowa w C i C++
  5. Mini system operacyjny w C i C++
  6. Mini maszyna wirtualna w Java lub C lub C++
  7. Napisanie standardowej biblioteki C++ w C
  8. Napisanie standardowej biblioteki Java w C++ i C
  9. Ewentualnie apilkacja webowa (ale jestem zielony w tym temacie, nawet prostej strony nie robilem) o tematyce scisle informatycznej czyli np. o Linuxie, C, C++, Java, bash

Co myslicie o tym ? Czy to ma sens ? Czy dalej kontynuowac pisanie mikro-programow ? Albo podajcie jakis inny pomysl na program ktory spelnialby moje kryteria.

1

A co chcesz robić w przyszłości? Bo rozumiem, że to w celach edukacyjnych.
Jak cię interesuje programowanie systemowe to są to dobre pomysły, aby potrenować, ale bardzo szerokie i słabo określone. Kiedy ocenisz, że system operacyjny jest już ok?
Drugie moje pytanie jest takie: dlaczego c i c++?

4
teofrast napisał(a):

Witam.

Wreszcie uwierzylem ze moge napisac cos wiekszego. Jezeli nie napisze tego to najwyzej poniose porazke ale mniejsza niz pisanie nawet poprawnych wielu mikro-programow.

Chce rownolegle pisac 1-3 wielkie/srednie (powyzej 25000 linii)

Dziwne założenie, żeby zakładać na wstępie, że ma być powyżej ileś linii. Co ci to da? Warto robić ambitne rzeczy, ale lepiej je postrzegać przez pryzmat ciekawych problemów, a nie rozdmuchania.

A poza tym cele wydają mi się ciekawe, chociaż miejscami padają dziwne stwierdzenia np.

  1. Kompilator w Javie (bo troche obawiam sie asemblera jakbym pisal w C / C++), ale gdybym wybral bajtkod Javy to chyba bym uniknal asemblera ?

Asembler to w uproszczeniu jakiś tam zestaw niskopoziomowych instrukcji (i logika do tego, czyli rejestry, stos itp.). No i niestety pisanie kompilatora też będzie się wiązało z tego typu rzeczami. Np. jak chcesz wygenerować bajtkod, jeśli sam bajtkod to taki jakby "asembler", tyle, że uruchamiany przez maszynę wirtualną?

Ewentualnie apilkacja webowa (ale jestem zielony w tym temacie, nawet prostej strony nie robilem) o tematyce scisle informatycznej czyli np. o Linuxie, C, C++, Java, bash

Do tego nie trzeba robić aplikacji, a możesz założyć zwykłego bloga (np. na Blogspot, czy korzystając z Wordpressa) i tam pisać o tych rzeczach.

6
teofrast napisał(a):

Co myslicie o tym ? Czy to ma sens ? Czy dalej kontynuowac pisanie mikro-programow ? Albo podajcie jakis inny pomysl na program ktory spelnialby moje kryteria.

Myślę, że to co napisałeś to jakiś absurd i stek bzdur wynikający z ogromnego braku doświadczenia. Programowanie jest narzędziem i nie da się pisać programów w oderwaniu od rzeczywistości, cy jak piszesz Chce rownolegle pisac 1-3 wielkie/srednie (powyzej 25000 linii) programy o tematyce scisle informatycznej tzn. abym nie musial odwolywac sie do ekonomii, fizyki, humanistyki, biologii, chemii, turystyki, astronomii, itd. a matematyki i angielskiego to tylko to co niezbedne....

Czy to ma sens ?

Nie ma nawet najmniejszego

Czy dalej kontynuowac pisanie mikro-programow ?

Zdecydowanie tak.

Albo podajcie jakis inny pomysl na program ktory spelnialby moje kryteria.

Nie ma bo to co wymyśliłeś to jest jakaś totalna bzdura.

Założenia, które przedstawiasz to mniej więcej taka wizja, że chcesz jeździć wielkim kombajnem i traktorami, robić wielkie rzeczy ale żeby to nie miało nic wspólnego z rolnictwem, pracą na powietrzu i koniecznością spalania paliwa.

5

Kompilator w Javie (bo troche obawiam sie asemblera jakbym pisal w C / C++), ale gdybym wybral bajtkod Javy to chyba bym uniknal asemblera ?

A czymże niby jest javowy bajtkod jak nie asemblerem? Najwyżej takim trochę wyższego poziomu

Czy kompilator to glownie dzialanie na regexach, liczbach, stringach, streamach - czyli pisanie kompilatora skupialoby sie glownie na pewnym wycinku jezyka, algorymow, struktur danych, a pomijaloby inne ?

Powodzenia w parsowaniu języka programowania regexami xD Prosty kompilator czy inteprereter to nie jakiś wielki hardkor, szczególnie jak użyjesz jakiegoś istniejącego generatora parserów (jakiś antlr na przykład).

Mini system operacyjny w C i C++

Nie wiem czy zdajesz sobie sprawę z tego że to jest znacznie trudniejsze zagadnienie niz te wyżej.

Mini maszyna wirtualna w Java lub C lub C++

Znów jakiś potężny skok w trudności, bo napisanie jakiejś prostej VMki trudne nie jest. W 2019 na Advent of Code przez 4 dni były zadania związane z pisaniem prostej VMki:
https://adventofcode.com/2019/day/2
https://adventofcode.com/2019/day/5
https://adventofcode.com/2019/day/7
https://adventofcode.com/2019/day/9

mógłbyś spróbować od tego

0

Jezeli nie napisze tego to najwyzej poniose porazke

Nigdy tak nie powinno się myśleć. Napisanie jakiegoś progamu to zawsze doświadczenie. Ile razy ja pisałem rzeczy, które sie nie przydały, wysypały z których zrezygnowałem, aż po czasie kolega z pracy na przykład głowił się jak zrobić żeby podświetlało się menu na górze, które użytkonik wybrał i potem jak juz ktoś jest na tej strone i wybiera podreczne menu z lewej strony to żeby to górne nadal bylo podseitlone niezależnie od tego co bedzie po lewej wybrane.

Uśmiechnąłem się do siebei i zaraz wysłałem mu

<x-nav-link :href="route('logs.index')" :active="request()->routeIs('logs.*')">
  {{ __('Logs') }}
</x-nav-link>

Chodziło p zastosowanie gwiazdki request()->routeIs('logs.*') z requesta bo on chciał coś robić na zasadzie if albo routeIn i kobinował z tablicami routeIs(['logs.index', 'logs.cosinnego'])
Także nie wiemy kiedy może się przydać coś co robiliśmy daaawno temu. Dla niego to był problem na skale 5 (od 1 do 10) a dla mnie to było trudności 1 bo już to znałem, dlatego przez takie sztuczki buduje wrażenie, że jestem expertem w oczach niektórych z firmy oczywiście. Sam jednak czuje, że niewiele umiem.

0

To chyba rozjasniliscie moje wahania bo na pisanie czegos ambitniejszego jest dla mnie za wczesnie. Programowanie to zdecydowanie trudna rzecz i latwo o blad a przy braku doswiadczenia to jak spacer czlowieka po terenie o 99% zageszczeniu min wojskowych, ktory nie ma kompetencji i praktyki saperskiej

0

To chyba rozjasniliscie moje wahania bo na pisanie czegos ambitniejszego jest dla mnie za wczesnie

? Weź te linki do Advent of Code i napisz sobie tą VMkę. Nie trzeba jakiegoś wielkiego skilla i można to zrobić w 1 dzień. Napisanie prostego kompilatora czy interpretera dla względnie prostego języka też można zrobić w jeden weekend. To nie są jakieś mega ambitne projekty, chyba że chciałbyś napisać kompilator/interpreter istniejącego języka o złożonej składni.

1
teofrast napisał(a):

To chyba rozjasniliscie moje wahania bo na pisanie czegos ambitniejszego jest dla mnie za wczesnie. Programowanie to zdecydowanie trudna rzecz i latwo o blad a przy braku doswiadczenia to jak spacer czlowieka po terenie o 99% zageszczeniu min wojskowych, ktory nie ma kompetencji i praktyki saperskiej

Na błędach człowiek się uczy.
Przy czym te ściśle techniczne błędy łatwo wyłapać (czy nawet napisać test automatyczny, który będzie sprawdzał, czy nie ma takich błędów), gorzej z błędami projektowymi, gdzie możliwe, że nawet się nie skapniesz, że coś źle zrobiłeś (większość programistów jak robi coś źle pod kątem designu, to nawet tego nie widzi). No ale jednak jeśli nie robisz niczego, to nie masz jak się uczyć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1