Archive for Luty, 2013

Elementy języka programowania

W poniższym artykule zajmiemy się budową języka programowania – czyli tym, co dokładnie wchodzi w skład tej konstrukcji. Sam program w języku programowania nazywa się kodem źródłowym, a na niego składa się kilka poszczególnych elementów. Pierwszym z nich jest składnia – jej reguły muszą zostać spełnione, ażeby cały zapisany ciąg znaków mógł być w ogóle rozpoznany przez komputer. Co zostało opisane w składni? Przede wszystkim rodzaje symboli, jakie w ogóle mogą zostać przez nas użyte. Do tego cały szereg zasad opisujących, w jaki sposób poszczególne symbole można łączyć w większe struktury. W zapisie symboli widzimy całe wyrażenie – fachowo mówi się na jego części atom i lista. Atomem zwiemy każdą cyfrę lub symbol. Liczbą zaś jest ciąg cyfr, zaczynających się albo od znaku plus, albo minus. Symbolem oficjalnie jest sekwencja zarówno dużych, jak i małych liter pochodzących z alfabetu łacińskiego. Na samym końcu mówimy o liście – to nawiasy, w jakich może się znaleźć zero bądź inne wyrażenia. Kolejną częścią składową jest semantyka. Dzięki niej znamy dokładne znaczenie różnych symboli oraz to, w jaki sposób funkcjonują one w programie. Niestety, jako że jest ona dość zwiła, musi być definiowana przy pomocy zwykłych słów. Błędy semantyczne wychwytuje się stosunkowo szybko – już wówczas, gdy przetwarzamy kod na samym wstępie. Są różne rodzaje błędów semantycznych, takie jak odwoływanie się do funkcji, która w rzeczywistości nie istnieje.

Zmienność tendencji w programowaniu

Każda dziedzina stopniowo się rozwija i zmienia – to co kiedyś było dobrym rozwiązaniem, obecnie odchodzi w niepamięć. To zjawisko jest szczególnie widoczne w technologiach informatycznych, które stale coś w sobie zmieniają, poprawiają, wnoszą nowe urządzenia. W programowaniu panuje niezmienna tendencja do tworzenia takich języków, które pomogą nam rozwiązywać problemy na jak najwyższym poziomie abstrakcji. Dzięki temu jeden język może być znacznie wydajniejszy! Spójrzmy bowiem na pierwsze języki programowania – każdy z nich był w jakiś sposób związany z jednym, konkretnym sprzętem. Obecnie nie mamy już takich ograniczeń, co jest wyjątkowo wygodne dla osób pracujących w tej dziedzinie. Dzięki nowym, tworzącym oprogramowanie technikom poprawia się przenośność, a dzięki najnowszym algorytmom istnieje możliwość realizowania zadań w sposób automatyczny, co znacznie skraca czas ich wykonania. Wcześniej pewnymi sprawami musiał dodatkowo zajmować się programista, obecnie nie ma już takiej konieczności. Niekwestionowanymi zaletami takiego obrotu sprawy jest krótszy czas potrzebny na wykonanie tej samej pracy oraz mniejsze pole do popisu, jeżeli chodzi o popełnienie błędu. Zwyczajnie mamy na to znacznie mniej okazji. Niestety, są i wady takiego postępowania – bywa bowiem, że negatywnie odbija się ono na wydajności danego języka programowania. Przykładem może być tutaj język Java – z nazwy znany nawet laikom i osobom, które nie są zainteresowane programowaniem.

Czy istnieje język uniwersalny?

W poniższym artykule postaramy się odpowiedzieć na pytanie, czy istnieje lub chociaż mógłby istnieć uniwersalny język programowania. Jeżeli jednak przyjrzymy się powodom, dla których tworzone są tysiące języków to szybko dojdziemy do wniosku, że tylko jeden absolutnie by nam nie wystarczył. Przyjrzyjmy się zatem przyczynom powstania tak wielu języków i sami odpowiedzmy sobie na to pytanie. Przede wszystkim – jak duży jest program? Możemy przecież trafić zarówno na programy w postaci niewielkich skryptów, jakie piszą amatorzy programowania, jak i na ogromne, potężne aplikacje, przy których działa znacznie więcej osób. Ciężko byłoby użyć w tak skrajnie różnych przypadkach tego samego języka! Inną rzeczą jest doświadczenie. Nie możemy przecież zakładać, że każdy programista jest niekwestionowanym ekspertem w swojej dziedzinie. Wystarczy choćby porównać długotrwałego pracownika firmy komputerowej i studenta II roku informatyki. Student może posługiwać się językiem służącym do stworzenia prostych programów, natomiast ekspert może wykorzystać wszystkie stojące przed nim możliwości. Spójrzmy również na parametry samych programów! Różnią się one pod względem wymagań co do szybkości, skalowalności czy wielkości. Niektóre języki są po prostu zbyt zaawansowane, zbyt rozbudowane, ażeby można było przy ich pomocy wykonać szybkie i proste zadania. A może chociażby preferencje? Jeden programista będzie wolał jeden język, a drugi zupełnie inny.

Język programowania a język naturalny

Możemy się zastanawiać, dlaczego przy użyciu komputerów tak wzrosła potrzeba stworzenia nowego, lepszego języka. Wyjaśnienie jest dość proste, a opiera się na wadach języka naturalnego, używanego w codziennej mowie ludzkiej. Przyjrzyjmy się jego mankamentom oraz sprawdźmy, jak zostały one poprawione w języku programowania. Jeżeli komunikuje się dwoje ludzi, to w ich rozmowie nie wszystko jest jasne, jednoznaczne, czarne albo białe. Stale podczas mowy popełniają błędy, większe i mniejsze, często pozostawiając przy tym niedomówienia i sprawiając, że druga osoba musi się dokładnie zastanowić nad znaczeniem słów, uwzględniając każdą ze zmiennych. Z tym, że ludzie robią to automatycznie, a gdyby taki język przedstawić maszynie – nie byłaby w stanie sobie z nim poradzić. Dlatego właśnie na świecie stale powstają kolejne, nowe języki programowania, mimo tego, że już istnieje ich już tysiące. Takie języki eliminują wady, jakie notorycznie pojawiają się w językach naturalnych. Są znacznie bardziej precyzyjne, a zawarta w nich treść jak najbardziej jednoznaczna. Dzięki temu maszyny mogą wykonywać dosłownie rozumiane zadania z pełną dokładnością. Komputer sam się nie domyśli, co dany programista insynuuje – musi on opisać całą procedurę pożądanego działania komputera, ściśle, krok po kroku. Rozwijające się języki programowania często opierają się na istniejących już na rynku rozwiązaniach, przez co jeden język robi się niemal bliźniaczo podobny do drugiego i tak dalej.

Konstrukcja składniowa i moc

Wiemy już, jakie są dwie cechy języka programowania: że ma on specyficzne funkcje oraz specjalne przeznaczenie. W poniższym artykule zajmiemy się bardziej szczegółowo dwiema innymi funkcjami. Na pierwszy ogień pójdą konstrukcje składniowe. Czyli w jaki sposób zbudowany jest język programowania? Jego konstrukcje składniowe mogą manipulować przeróżnymi strukturami danych. To jednak nie wszystko! Również dzięki temu język dokonuje przepływu sterowania. Ostatnią cechą języka programowania jest jego moc. Słowo moc kojarzy nam się dość jednoznacznie, jak jednak można je rozumieć w przypadku języka programowania? Języki podlegają tutaj pewnej kwalifikacji. Ich rozróżnienia i przydziału do poszczególnych grup dokonuje się na podstawie obliczeń, jakie można przy ich pomocy wykonać. W ten oto sposób rozróżnia je w swojej hierarchii Noam Chomsky. Jest też jedna zasada mocy, jaka musi działać w każdym języku programowania. W sensie Turinga możemy w nich zaimplementować zbiór, zawierający identyczne algorytmy (dotyczy to rzecz jasna języków zupełnych). Dla odróżnienia można wskazać przykład języka niezupełnego – może być nim SQL, dzięki któremu możemy bez problemu wymieniać komunikaty z bazą danych naszego urządzenia. Jeżeli w jakimkolwiek języku (przykładowo w językach znaczników jak HTML) nie jesteśmy w stanie wykonywać obliczeń, to nie możemy ich podciągnąć pod definicję oznaczającą język programowania.

Cechy języka programowania

Język, w jakim piszemy oprogramowanie komputerowe jest dość skomplikowany. Możemy jednak przyjrzeć się jego kilku głównym cechom, które pomogą nam zrozumieć jego charakter i specyfikę. Przede wszystkim język programowania ma główną funkcję: przy jego pomocy tworzymy oprogramowanie komputerowe. Dzięki temu możemy przetwarzać różnego rodzaju dane, wykonywać skomplikowane obliczenia i algorytmy. Do tego dochodzi kontrola nad całym sprzętem zewnętrznym, takim jak drukarki czy roboty. Wszystko to dzieje się dzięki odpowiednim programom, a nie za pomocą sił wyższych. Kolejną cechą tego języka jest specyficzne przeznaczenie. Zwróćmy bowiem uwagę na ogromną różnicę pomiędzy językiem programowania a językami naturalnymi. Choć do ich określenia używamy tego samego słowa (język) to jednak znaczą one zupełnie co innego. Podczas gdy języki naturalne podnoszą poziom komunikacji międzyludzkiej, to języki programowania pomagają nam w przesyłaniu komunikatów do maszyn. Zdarza się również, że wykorzystuje się język programowania do tego, by jedna maszyna mogła z dużym powodzeniem sprawować kontrolę nad inną. Możemy tutaj nawet podać przykład, który lepiej zilustruje następującą sytuację. Jeżeli bowiem program komputerowy jest w stanie wygenerować kod PostScript, to dzięki temu może zacząć kierować pracą urządzeń zewnętrznych, takich jak drukarka czy wyświetlacz. Jest to bardzo przydatne w codziennej pracy.

Język oprogramowania komputerowego

Jeżeli zabieramy się za programowanie musimy na samym początku zapoznać się z podstawami. Są one oczywiste dla zawodowych programistów, natomiast dla zwykłych obywateli jawią się one niby czarna magia. Przede wszystkim – w jakim języku pisze się takowe programy? Są one specyficzne, nazywamy je językami programowania, a przy ich konstrukcji używa się algorytmów. Mamy tutaj takie programy, które potrafią całe oprogramowanie przekształcić z postaci źródłowej na binarną – takie programy nazywa się fachowo kompilatorami. Jak możemy jednak w sposób najbardziej ogólny określić język, jakiego używa się właśnie podczas tworzenia oprogramowania? Nie jest to bowiem typowy język, nie ma obco brzmiących słówek. Językiem programowania jest cały zbiór zasad. To one określają, w jakim momencie dany ciąg symboli może utworzyć program komputerowy; to one również decydują, jakiego rodzaju obliczenia będą w tymże programie wykonywane. Reguły, jakie znajdują się w tym języku, dotyczą zarówno zasad syntaktycznych jak i semantycznych. Dzięki nim komputer dokładnie wie, o jakie wyrażenia chodzi i w jaki sposób ma je rozumieć. Są jeżyki programowania, których zdefiniowanie określa się przez różne oficjalne implementacje; większość jednak języków posiada pisemną specyfikację składni i semantyki. Te wszystkie informacje są dopiero wstępem; poznanie i zrozumienie języka programowania jest o wiele bardziej skomplikowane i zajmuje więcej czasu.

Jak to jest zrobione?

Jeżeli omówimy, dokładnie czym jest oprogramowanie komputerowe, to w następnej kolejności powinniśmy się zająć jego twórcami. Wiadomo, iż zanim zaczniemy robić skomplikowane rzeczy na komputerze, potrzebujemy wcześniejszych lat studiów i doświadczenia. Od najprostszych aplikacji dochodzimy po skomplikowane programy komputerowe. Kto jest zatem za nie odpowiedzialny? Programiści. Programowanie jest jedną ze specjalności, jaką wybierają informatycy na studiach. Trzeba przyznać, iż jest ona równocześnie jedną z najbardziej opłacalnych – stale bowiem tworzone są nowe programy, które mają za zadanie usprawnić pracę naszego komputera. I to nie tylko nowe! To programiści wprowadzają wszelakie aktualizacje. Powinniśmy pamiętać o tym, że wszelakie aplikacje tworzone w procesie programowania chronione są prawem autorskim. Nie możemy zatem ot tak ich rozpowszechniać – czasem są one za darmo, czasem wymagają od nas odrobiny gotówki, czasem zaś – horrendalnego wydatku. Twórcy programów pozwalają nam korzystać ze swojej pracy na pewnych zasadach – są to warunki, jakie zawierają oni w licencji programu. Dlatego też warto poświęcić nieco swojego cennego czasu na jej lekturę! Zaoszczędzić to nam może sporo problemów w przyszłości, jakie mogłyby wynikać z nieprawidłowego zrozumienia zawartych w niej zasad korzystania z programu. Przykładem może być okres próbny, po którym musimy wykupić licencję.

Czym jest oprogramowanie?

Wiele osób spotkało się już w swojej karierze z określeniem: oprogramowanie komputerowe. Czy jednak wiemy, co te słowa znaczą? Czy też jest to definicja dostępna tylko umysłowi informatycznemu? Niekoniecznie. Zapoznajmy się zatem z kilkoma faktami dotyczącymi właśnie oprogramowania. Zadaniem oprogramowania komputerowego jest realizacja pewnych z góry założonych celów, do którego zostały skonstruowane poszczególne programy. Mamy tutaj zestawy instrukcji, zaimplementowane interfejsy oraz w pełni zintegrowane dane. Oprogramowanie musi te dane w odpowiedni sposób przetworzyć – tak, ażeby realizowały one poszczególne zadania. Rzecz jasna całe oprogramowanie znane jest w większości tylko informatykom – większość osób ani nie ma wiedzy, ani nawet chęci, pozwalającym się im zagłębić w tego rodzaju informacje. W jaki sposób możemy inaczej nazwać oprogramowanie? Popularnie mówi się nań po prostu program komputerowy bądź aplikacja. Jednakże są to pojedyncze określenia – mogą one służyć poszczególnym programom o specyficznych, zupełnie niezwiązanych ze sobą zadaniach. Oprogramowanie natomiast jest określeniem zbiorczym – dzięki niemu możemy wyrazić mnogość aplikacji, znajdujących się na naszym komputerze. Czasem stosuje się pojęcie oprogramowania podstawowego – czyli zbioru programów, które są niezbędne do prawidłowej pracy każdego urządzenia komputerowego. Musimy zadbać o to, by takowe programy znajdowały się i na naszym komputerze.

Wszystko co najnowsze

Jakie są obecne trendy, jeśli chodzi o sprzęt komputerowy? W gruncie rzeczy ciężko jest wskazać jednoznaczną odpowiedź. Dzieje się tak dlatego, iż ta technologia gwałtownie się rozwija – stale mamy do czynienia z czymś, co jest nowe i lepsze, a stare odchodzi do lamusa. Inaczej mówiąc, najlepiej jest mieć jak najnowszy sprzęt, który będzie spełniał najwyższe wymagania. Chodzi tutaj o różne sprawy; by działał jak najszybciej i najefektywniej, odtwarzał pliki multimedialne z najwyższą jakością, przedstawiał gry komputerowe w jakości niemal realistycznej. Większości z nas nie stać na takie luksusy, jednakże są osoby, które bardzo dbają o to, ażeby ich sprzęt był nowoczesny. Myślisz, że skąd stałe aktualizacje? Nie tylko sam sprzęt i dodatki się liczą. Każdego dnia na rynku pojawiają się nowe wersje popularnych programów bądź zupełnie nowe programy. Możemy je pobrać z Internetu lub zakupić, płacąc za licencję na ich używanie. Choć ciężko uwierzyć, niektóre bardzo zaawansowane programy mogą kosztować nawet kilka tysięcy! Przykładem są takie programy do graficznej obróbki gier. Jest jeszcze wiele innych, które mogą znacznie ułatwić nam życie, ale również będą nas słono kosztować. Jesteś gotowy na taki wydatek? Jako maniak komputerowych nowości i gadżetów nie powinieneś mieć nic przeciwko. Stałe aktualizacje Twojego sprzętu pomogą Ci utrzymać odpowiednią kondycję elektroniczną w twoim domu.