<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C on grzenow</title><link>http://www.grzenow.com/pl/tags/c/</link><description>Recent content in C on grzenow</description><generator>Hugo</generator><language>pl</language><lastBuildDate>Sat, 11 Feb 2023 00:00:00 +0000</lastBuildDate><atom:link href="http://www.grzenow.com/pl/tags/c/index.xml" rel="self" type="application/rss+xml"/><item><title>Egzekutor</title><link>http://www.grzenow.com/pl/projects/executor/</link><pubDate>Sat, 11 Feb 2023 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/pl/projects/executor/</guid><description>&lt;p&gt;&lt;strong&gt;Egzekutor&lt;/strong&gt; to projekt z zakresu programowania współbieżnego. Jest to program, który wykonuje zadania, monitoruje ich ostatnie wypisane wyjścia (w trakcie działania), a także ubija je.&lt;/p&gt;&#10;&lt;p&gt;Obsługa procesów została zsynchronizowana w taki sposób, aby Egzekutor od razu informował o zakończeniu zadania oraz na bieżąco usuwał kończące się procesy lub wątki, które tworzy. Wszystko to odbywa się bez stosowania aktywnego oczekiwania, by nie marnować zasobów CPU.&lt;/p&gt;&#10;&lt;p&gt;Szczegółowy opis projektu można znaleźć pod poniższym linkiem.&lt;/p&gt;</description></item><item><title>Wielomiany Rzadkie Wielu Zmiennych</title><link>http://www.grzenow.com/pl/projects/ipp-polynomials/</link><pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/pl/projects/ipp-polynomials/</guid><description>&lt;p&gt;Jest to rozbudowany projekt napisany w języku C, którego celem jest implementacja podstawowych operacji na wielomianach rzadkich wielu zmiennych, takich jak dodawanie, odejmowanie, mnożenie oraz potęgowanie.&lt;/p&gt;&#10;&lt;p&gt;Drugą część projektu stanowi kalkulator wielomianów wykorzystujący odwrotną notację polską. Umożliwia on wykonywanie operacji arytmetycznych oraz wypisywanie aktualnego wielomianu znajdującego się na stosie.&lt;/p&gt;&#10;&lt;p&gt;Implementacja została zoptymalizowana pod kątem efektywnej alokacji dynamicznej, minimalizując zbędne alokacje i kopiowanie pamięci. Ponadto, program zapewnia pełne zwalnianie zaalokowanej pamięci, zapobiegając jej wyciekom. Całość została udokumentowana w formacie Doxygen.&lt;/p&gt;</description></item><item><title>Pętlik</title><link>http://www.grzenow.com/pl/projects/petlik/</link><pubDate>Tue, 19 Jan 2021 00:00:00 +0000</pubDate><guid>http://www.grzenow.com/pl/projects/petlik/</guid><description>&lt;p&gt;&lt;strong&gt;Pętlik&lt;/strong&gt; to mały język programowania, którego składnię opisuje gramatyka z symbolem początkowym &lt;code&gt;Program&lt;/code&gt;:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;Program → CiągInstrukcji&#10;CiągInstrukcji → ε | CiągInstrukcji Instrukcja&#10;Instrukcja → Zwiększ | Powtarzaj&#10;Zwiększ → Zmienna&#10;Powtarzaj → &amp;#39;(&amp;#39; Zmienna CiągInstrukcji &amp;#39;)&amp;#39;&#10;Zmienna → &amp;#39;a&amp;#39; | ... | &amp;#39;z&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Instrukcje:&lt;/strong&gt;:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;Zwiększ&lt;/code&gt;: równoważna instrukcji &lt;code&gt;++zmienna&lt;/code&gt; języka C.&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Powtarzaj&lt;/code&gt;: równoważna instrukcji języka C:&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ff7b72"&gt;while&lt;/span&gt; (zmienna &lt;span style="color:#ff7b72;font-weight:bold"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#a5d6ff"&gt;0&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ff7b72;font-weight:bold"&gt;--&lt;/span&gt;zmienna;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ...&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Projekt składa się z dwóch części:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Kompilatora optymalizującego, generującego kod na maszynę wirtualną.&lt;/li&gt;&#10;&lt;li&gt;Interpretera kodu tej maszyny.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;Instrukcje maszynowe:&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>